home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / QD3DGeometry.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  83.8 KB  |  2,900 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DGeometry.a
  3. ;
  4. ;    Contains:    Q3Geometry methods                                        
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__QD3DGEOMETRY__') = 'UNDEFINED' THEN
  18. __QD3DGEOMETRY__ SET 1
  19.  
  20.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  21.     include 'QD3D.a'
  22.     ENDIF
  23.  
  24.     IF &TYPE('__QD3DSET__') = 'UNDEFINED' THEN
  25.     include 'QD3DSet.a'
  26.     ENDIF
  27.  
  28. ; ******************************************************************************
  29. ; **                                                                             **
  30. ; **                                Geometry Routines                             **
  31. ; **                                                                             **
  32. ; ****************************************************************************
  33.  
  34. ;
  35. ; extern TQ3ObjectType Q3Geometry_GetType(TQ3GeometryObject geometry)
  36. ;
  37.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  38.         IMPORT_CFM_FUNCTION Q3Geometry_GetType
  39.     ENDIF
  40.  
  41. ;
  42. ; extern TQ3Status Q3Geometry_GetAttributeSet(TQ3GeometryObject geometry, TQ3AttributeSet *attributeSet)
  43. ;
  44.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  45.         IMPORT_CFM_FUNCTION Q3Geometry_GetAttributeSet
  46.     ENDIF
  47.  
  48. ;
  49. ; extern TQ3Status Q3Geometry_SetAttributeSet(TQ3GeometryObject geometry, TQ3AttributeSet attributeSet)
  50. ;
  51.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  52.         IMPORT_CFM_FUNCTION Q3Geometry_SetAttributeSet
  53.     ENDIF
  54.  
  55. ;
  56. ; extern TQ3Status Q3Geometry_Submit(TQ3GeometryObject geometry, TQ3ViewObject view)
  57. ;
  58.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  59.         IMPORT_CFM_FUNCTION Q3Geometry_Submit
  60.     ENDIF
  61.  
  62.  
  63.  
  64. ; ******************************************************************************
  65. ; **                                                                             **
  66. ; **                            Box    Data Structure Definitions                     **
  67. ; **                                                                             **
  68. ; ****************************************************************************
  69.  
  70. TQ3BoxData                RECORD 0
  71. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  72. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  73. majorAxis                 ds        TQ3Vector3D        ; offset: $18 (24)
  74. minorAxis                 ds        TQ3Vector3D        ; offset: $24 (36)
  75. faceAttributeSet         ds.l    1                ; offset: $30 (48)        ;  Ordering : Left, right,     
  76. ;               front, back,     
  77. ;               top, bottom    
  78. boxAttributeSet             ds.l    1                ; offset: $34 (52)
  79. sizeof                     EQU *                    ; size:   $38 (56)
  80.                         ENDR
  81.  
  82. ; ******************************************************************************
  83. ; **                                                                             **
  84. ; **                                Box Routines                                 **
  85. ; **                                                                             **
  86. ; ****************************************************************************
  87.  
  88. ;
  89. ; extern TQ3GeometryObject Q3Box_New(const TQ3BoxData *boxData)
  90. ;
  91.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  92.         IMPORT_CFM_FUNCTION Q3Box_New
  93.     ENDIF
  94.  
  95. ;
  96. ; extern TQ3Status Q3Box_Submit(const TQ3BoxData *boxData, TQ3ViewObject view)
  97. ;
  98.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  99.         IMPORT_CFM_FUNCTION Q3Box_Submit
  100.     ENDIF
  101.  
  102. ;
  103. ; extern TQ3Status Q3Box_SetData(TQ3GeometryObject box, const TQ3BoxData *boxData)
  104. ;
  105.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  106.         IMPORT_CFM_FUNCTION Q3Box_SetData
  107.     ENDIF
  108.  
  109. ;
  110. ; extern TQ3Status Q3Box_GetData(TQ3GeometryObject box, TQ3BoxData *boxData)
  111. ;
  112.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  113.         IMPORT_CFM_FUNCTION Q3Box_GetData
  114.     ENDIF
  115.  
  116. ;
  117. ; extern TQ3Status Q3Box_EmptyData(TQ3BoxData *boxData)
  118. ;
  119.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  120.         IMPORT_CFM_FUNCTION Q3Box_EmptyData
  121.     ENDIF
  122.  
  123. ;
  124. ; extern TQ3Status Q3Box_SetOrigin(TQ3GeometryObject box, const TQ3Point3D *origin)
  125. ;
  126.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  127.         IMPORT_CFM_FUNCTION Q3Box_SetOrigin
  128.     ENDIF
  129.  
  130. ;
  131. ; extern TQ3Status Q3Box_SetOrientation(TQ3GeometryObject box, const TQ3Vector3D *orientation)
  132. ;
  133.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  134.         IMPORT_CFM_FUNCTION Q3Box_SetOrientation
  135.     ENDIF
  136.  
  137. ;
  138. ; extern TQ3Status Q3Box_SetMajorAxis(TQ3GeometryObject box, const TQ3Vector3D *majorAxis)
  139. ;
  140.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  141.         IMPORT_CFM_FUNCTION Q3Box_SetMajorAxis
  142.     ENDIF
  143.  
  144. ;
  145. ; extern TQ3Status Q3Box_SetMinorAxis(TQ3GeometryObject box, const TQ3Vector3D *minorAxis)
  146. ;
  147.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  148.         IMPORT_CFM_FUNCTION Q3Box_SetMinorAxis
  149.     ENDIF
  150.  
  151. ;
  152. ; extern TQ3Status Q3Box_GetOrigin(TQ3GeometryObject box, TQ3Point3D *origin)
  153. ;
  154.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  155.         IMPORT_CFM_FUNCTION Q3Box_GetOrigin
  156.     ENDIF
  157.  
  158. ;
  159. ; extern TQ3Status Q3Box_GetOrientation(TQ3GeometryObject box, TQ3Vector3D *orientation)
  160. ;
  161.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  162.         IMPORT_CFM_FUNCTION Q3Box_GetOrientation
  163.     ENDIF
  164.  
  165. ;
  166. ; extern TQ3Status Q3Box_GetMajorAxis(TQ3GeometryObject box, TQ3Vector3D *majorAxis)
  167. ;
  168.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  169.         IMPORT_CFM_FUNCTION Q3Box_GetMajorAxis
  170.     ENDIF
  171.  
  172. ;
  173. ; extern TQ3Status Q3Box_GetMinorAxis(TQ3GeometryObject box, TQ3Vector3D *minorAxis)
  174. ;
  175.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  176.         IMPORT_CFM_FUNCTION Q3Box_GetMinorAxis
  177.     ENDIF
  178.  
  179. ;
  180. ; extern TQ3Status Q3Box_GetFaceAttributeSet(TQ3GeometryObject box, unsigned long faceIndex, TQ3AttributeSet *faceAttributeSet)
  181. ;
  182.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  183.         IMPORT_CFM_FUNCTION Q3Box_GetFaceAttributeSet
  184.     ENDIF
  185.  
  186. ;
  187. ; extern TQ3Status Q3Box_SetFaceAttributeSet(TQ3GeometryObject box, unsigned long faceIndex, TQ3AttributeSet faceAttributeSet)
  188. ;
  189.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  190.         IMPORT_CFM_FUNCTION Q3Box_SetFaceAttributeSet
  191.     ENDIF
  192.  
  193.  
  194.  
  195. ; ******************************************************************************
  196. ; **                                                                             **
  197. ; **                        Cone Data Structure Definitions                          **
  198. ; **                                                                             **
  199. ; ****************************************************************************
  200.  
  201. TQ3ConeData                RECORD 0
  202. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  203. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  204. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  205. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  206. uMin                     ds        Float32            ; offset: $30 (48)
  207. uMax                     ds        Float32            ; offset: $34 (52)
  208. vMin                     ds        Float32            ; offset: $38 (56)
  209. vMax                     ds        Float32            ; offset: $3C (60)
  210. caps                     ds.l    1                ; offset: $40 (64)
  211. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  212. faceAttributeSet         ds.l    1                ; offset: $48 (72)
  213. bottomAttributeSet         ds.l    1                ; offset: $4C (76)
  214. coneAttributeSet         ds.l    1                ; offset: $50 (80)
  215. sizeof                     EQU *                    ; size:   $54 (84)
  216.                         ENDR
  217. ; ******************************************************************************
  218. ; **                                                                             **
  219. ; **                                Cone Routines                                 **
  220. ; **                                                                             **
  221. ; ****************************************************************************
  222.  
  223. ;
  224. ; extern TQ3GeometryObject Q3Cone_New(const TQ3ConeData *coneData)
  225. ;
  226.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  227.         IMPORT_CFM_FUNCTION Q3Cone_New
  228.     ENDIF
  229.  
  230. ;
  231. ; extern TQ3Status Q3Cone_Submit(const TQ3ConeData *coneData, TQ3ViewObject view)
  232. ;
  233.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  234.         IMPORT_CFM_FUNCTION Q3Cone_Submit
  235.     ENDIF
  236.  
  237. ;
  238. ; extern TQ3Status Q3Cone_SetData(TQ3GeometryObject cone, const TQ3ConeData *coneData)
  239. ;
  240.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  241.         IMPORT_CFM_FUNCTION Q3Cone_SetData
  242.     ENDIF
  243.  
  244. ;
  245. ; extern TQ3Status Q3Cone_GetData(TQ3GeometryObject cone, TQ3ConeData *coneData)
  246. ;
  247.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  248.         IMPORT_CFM_FUNCTION Q3Cone_GetData
  249.     ENDIF
  250.  
  251. ;
  252. ; extern TQ3Status Q3Cone_SetOrigin(TQ3GeometryObject cone, const TQ3Point3D *origin)
  253. ;
  254.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  255.         IMPORT_CFM_FUNCTION Q3Cone_SetOrigin
  256.     ENDIF
  257.  
  258. ;
  259. ; extern TQ3Status Q3Cone_SetOrientation(TQ3GeometryObject cone, const TQ3Vector3D *orientation)
  260. ;
  261.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  262.         IMPORT_CFM_FUNCTION Q3Cone_SetOrientation
  263.     ENDIF
  264.  
  265. ;
  266. ; extern TQ3Status Q3Cone_SetMajorRadius(TQ3GeometryObject cone, const TQ3Vector3D *majorRadius)
  267. ;
  268.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  269.         IMPORT_CFM_FUNCTION Q3Cone_SetMajorRadius
  270.     ENDIF
  271.  
  272. ;
  273. ; extern TQ3Status Q3Cone_SetMinorRadius(TQ3GeometryObject cone, const TQ3Vector3D *minorRadius)
  274. ;
  275.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  276.         IMPORT_CFM_FUNCTION Q3Cone_SetMinorRadius
  277.     ENDIF
  278.  
  279. ;
  280. ; extern TQ3Status Q3Cone_GetOrigin(TQ3GeometryObject cone, TQ3Point3D *origin)
  281. ;
  282.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  283.         IMPORT_CFM_FUNCTION Q3Cone_GetOrigin
  284.     ENDIF
  285.  
  286. ;
  287. ; extern TQ3Status Q3Cone_GetOrientation(TQ3GeometryObject cone, TQ3Vector3D *orientation)
  288. ;
  289.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  290.         IMPORT_CFM_FUNCTION Q3Cone_GetOrientation
  291.     ENDIF
  292.  
  293. ;
  294. ; extern TQ3Status Q3Cone_GetMajorRadius(TQ3GeometryObject cone, TQ3Vector3D *majorRadius)
  295. ;
  296.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  297.         IMPORT_CFM_FUNCTION Q3Cone_GetMajorRadius
  298.     ENDIF
  299.  
  300. ;
  301. ; extern TQ3Status Q3Cone_GetMinorRadius(TQ3GeometryObject cone, TQ3Vector3D *minorRadius)
  302. ;
  303.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  304.         IMPORT_CFM_FUNCTION Q3Cone_GetMinorRadius
  305.     ENDIF
  306.  
  307. ;
  308. ; extern TQ3Status Q3Cone_SetCaps(TQ3GeometryObject cone, TQ3EndCap caps)
  309. ;
  310.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  311.         IMPORT_CFM_FUNCTION Q3Cone_SetCaps
  312.     ENDIF
  313.  
  314. ;
  315. ; extern TQ3Status Q3Cone_GetCaps(TQ3GeometryObject cone, TQ3EndCap *caps)
  316. ;
  317.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  318.         IMPORT_CFM_FUNCTION Q3Cone_GetCaps
  319.     ENDIF
  320.  
  321. ;
  322. ; extern TQ3Status Q3Cone_SetBottomAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet bottomAttributeSet)
  323. ;
  324.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  325.         IMPORT_CFM_FUNCTION Q3Cone_SetBottomAttributeSet
  326.     ENDIF
  327.  
  328. ;
  329. ; extern TQ3Status Q3Cone_GetBottomAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet *bottomAttributeSet)
  330. ;
  331.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  332.         IMPORT_CFM_FUNCTION Q3Cone_GetBottomAttributeSet
  333.     ENDIF
  334.  
  335. ;
  336. ; extern TQ3Status Q3Cone_SetFaceAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet faceAttributeSet)
  337. ;
  338.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  339.         IMPORT_CFM_FUNCTION Q3Cone_SetFaceAttributeSet
  340.     ENDIF
  341.  
  342. ;
  343. ; extern TQ3Status Q3Cone_GetFaceAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet *faceAttributeSet)
  344. ;
  345.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  346.         IMPORT_CFM_FUNCTION Q3Cone_GetFaceAttributeSet
  347.     ENDIF
  348.  
  349. ;
  350. ; extern TQ3Status Q3Cone_EmptyData(TQ3ConeData *coneData)
  351. ;
  352.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  353.         IMPORT_CFM_FUNCTION Q3Cone_EmptyData
  354.     ENDIF
  355.  
  356.  
  357.  
  358.  
  359. ; ******************************************************************************
  360. ; **                                                                             **
  361. ; **                        Cylinder Data Structure Definitions                     **
  362. ; **                                                                             **
  363. ; ****************************************************************************
  364.  
  365. TQ3CylinderData            RECORD 0
  366. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  367. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  368. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  369. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  370. uMin                     ds        Float32            ; offset: $30 (48)
  371. uMax                     ds        Float32            ; offset: $34 (52)
  372. vMin                     ds        Float32            ; offset: $38 (56)
  373. vMax                     ds        Float32            ; offset: $3C (60)
  374. caps                     ds.l    1                ; offset: $40 (64)
  375. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  376. topAttributeSet             ds.l    1                ; offset: $48 (72)
  377. faceAttributeSet         ds.l    1                ; offset: $4C (76)
  378. bottomAttributeSet         ds.l    1                ; offset: $50 (80)
  379. cylinderAttributeSet     ds.l    1                ; offset: $54 (84)
  380. sizeof                     EQU *                    ; size:   $58 (88)
  381.                         ENDR
  382. ; ******************************************************************************
  383. ; **                                                                             **
  384. ; **                            Cylinder Routines                                 **
  385. ; **                                                                             **
  386. ; ****************************************************************************
  387.  
  388. ;
  389. ; extern TQ3GeometryObject Q3Cylinder_New(const TQ3CylinderData *cylinderData)
  390. ;
  391.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  392.         IMPORT_CFM_FUNCTION Q3Cylinder_New
  393.     ENDIF
  394.  
  395. ;
  396. ; extern TQ3Status Q3Cylinder_Submit(const TQ3CylinderData *cylinderData, TQ3ViewObject view)
  397. ;
  398.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  399.         IMPORT_CFM_FUNCTION Q3Cylinder_Submit
  400.     ENDIF
  401.  
  402. ;
  403. ; extern TQ3Status Q3Cylinder_SetData(TQ3GeometryObject cylinder, const TQ3CylinderData *cylinderData)
  404. ;
  405.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  406.         IMPORT_CFM_FUNCTION Q3Cylinder_SetData
  407.     ENDIF
  408.  
  409. ;
  410. ; extern TQ3Status Q3Cylinder_GetData(TQ3GeometryObject cylinder, TQ3CylinderData *cylinderData)
  411. ;
  412.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  413.         IMPORT_CFM_FUNCTION Q3Cylinder_GetData
  414.     ENDIF
  415.  
  416. ;
  417. ; extern TQ3Status Q3Cylinder_SetOrigin(TQ3GeometryObject cylinder, const TQ3Point3D *origin)
  418. ;
  419.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  420.         IMPORT_CFM_FUNCTION Q3Cylinder_SetOrigin
  421.     ENDIF
  422.  
  423. ;
  424. ; extern TQ3Status Q3Cylinder_SetOrientation(TQ3GeometryObject cylinder, const TQ3Vector3D *orientation)
  425. ;
  426.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  427.         IMPORT_CFM_FUNCTION Q3Cylinder_SetOrientation
  428.     ENDIF
  429.  
  430. ;
  431. ; extern TQ3Status Q3Cylinder_SetMajorRadius(TQ3GeometryObject cylinder, const TQ3Vector3D *majorRadius)
  432. ;
  433.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  434.         IMPORT_CFM_FUNCTION Q3Cylinder_SetMajorRadius
  435.     ENDIF
  436.  
  437. ;
  438. ; extern TQ3Status Q3Cylinder_SetMinorRadius(TQ3GeometryObject cylinder, const TQ3Vector3D *minorRadius)
  439. ;
  440.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  441.         IMPORT_CFM_FUNCTION Q3Cylinder_SetMinorRadius
  442.     ENDIF
  443.  
  444. ;
  445. ; extern TQ3Status Q3Cylinder_GetOrigin(TQ3GeometryObject cylinder, TQ3Point3D *origin)
  446. ;
  447.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  448.         IMPORT_CFM_FUNCTION Q3Cylinder_GetOrigin
  449.     ENDIF
  450.  
  451. ;
  452. ; extern TQ3Status Q3Cylinder_GetOrientation(TQ3GeometryObject cylinder, TQ3Vector3D *orientation)
  453. ;
  454.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  455.         IMPORT_CFM_FUNCTION Q3Cylinder_GetOrientation
  456.     ENDIF
  457.  
  458. ;
  459. ; extern TQ3Status Q3Cylinder_GetMajorRadius(TQ3GeometryObject cylinder, TQ3Vector3D *majorRadius)
  460. ;
  461.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  462.         IMPORT_CFM_FUNCTION Q3Cylinder_GetMajorRadius
  463.     ENDIF
  464.  
  465. ;
  466. ; extern TQ3Status Q3Cylinder_GetMinorRadius(TQ3GeometryObject cylinder, TQ3Vector3D *minorRadius)
  467. ;
  468.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  469.         IMPORT_CFM_FUNCTION Q3Cylinder_GetMinorRadius
  470.     ENDIF
  471.  
  472.  
  473. ;
  474. ; extern TQ3Status Q3Cylinder_SetCaps(TQ3GeometryObject cylinder, TQ3EndCap caps)
  475. ;
  476.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  477.         IMPORT_CFM_FUNCTION Q3Cylinder_SetCaps
  478.     ENDIF
  479.  
  480. ;
  481. ; extern TQ3Status Q3Cylinder_GetCaps(TQ3GeometryObject cylinder, TQ3EndCap *caps)
  482. ;
  483.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  484.         IMPORT_CFM_FUNCTION Q3Cylinder_GetCaps
  485.     ENDIF
  486.  
  487.  
  488. ;
  489. ; extern TQ3Status Q3Cylinder_SetTopAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet topAttributeSet)
  490. ;
  491.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  492.         IMPORT_CFM_FUNCTION Q3Cylinder_SetTopAttributeSet
  493.     ENDIF
  494.  
  495. ;
  496. ; extern TQ3Status Q3Cylinder_GetTopAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *topAttributeSet)
  497. ;
  498.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  499.         IMPORT_CFM_FUNCTION Q3Cylinder_GetTopAttributeSet
  500.     ENDIF
  501.  
  502. ;
  503. ; extern TQ3Status Q3Cylinder_SetBottomAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet bottomAttributeSet)
  504. ;
  505.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  506.         IMPORT_CFM_FUNCTION Q3Cylinder_SetBottomAttributeSet
  507.     ENDIF
  508.  
  509. ;
  510. ; extern TQ3Status Q3Cylinder_GetBottomAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *bottomAttributeSet)
  511. ;
  512.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  513.         IMPORT_CFM_FUNCTION Q3Cylinder_GetBottomAttributeSet
  514.     ENDIF
  515.  
  516. ;
  517. ; extern TQ3Status Q3Cylinder_SetFaceAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet faceAttributeSet)
  518. ;
  519.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  520.         IMPORT_CFM_FUNCTION Q3Cylinder_SetFaceAttributeSet
  521.     ENDIF
  522.  
  523. ;
  524. ; extern TQ3Status Q3Cylinder_GetFaceAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *faceAttributeSet)
  525. ;
  526.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  527.         IMPORT_CFM_FUNCTION Q3Cylinder_GetFaceAttributeSet
  528.     ENDIF
  529.  
  530. ;
  531. ; extern TQ3Status Q3Cylinder_EmptyData(TQ3CylinderData *cylinderData)
  532. ;
  533.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  534.         IMPORT_CFM_FUNCTION Q3Cylinder_EmptyData
  535.     ENDIF
  536.  
  537.  
  538.  
  539.  
  540. ; ******************************************************************************
  541. ; **                                                                             **
  542. ; **                        Disk Data Structure Definitions                         **
  543. ; **                                                                             **
  544. ; ****************************************************************************
  545.  
  546. TQ3DiskData                RECORD 0
  547. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  548. majorRadius                 ds        TQ3Vector3D        ; offset: $C (12)
  549. minorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  550. uMin                     ds        Float32            ; offset: $24 (36)
  551. uMax                     ds        Float32            ; offset: $28 (40)
  552. vMin                     ds        Float32            ; offset: $2C (44)
  553. vMax                     ds        Float32            ; offset: $30 (48)
  554. diskAttributeSet         ds.l    1                ; offset: $34 (52)
  555. sizeof                     EQU *                    ; size:   $38 (56)
  556.                         ENDR
  557. ; ******************************************************************************
  558. ; **                                                                             **
  559. ; **                                Disk Routines                                  **
  560. ; **                                                                             **
  561. ; ****************************************************************************
  562.  
  563. ;
  564. ; extern TQ3GeometryObject Q3Disk_New(const TQ3DiskData *diskData)
  565. ;
  566.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  567.         IMPORT_CFM_FUNCTION Q3Disk_New
  568.     ENDIF
  569.  
  570. ;
  571. ; extern TQ3Status Q3Disk_Submit(const TQ3DiskData *diskData, TQ3ViewObject view)
  572. ;
  573.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  574.         IMPORT_CFM_FUNCTION Q3Disk_Submit
  575.     ENDIF
  576.  
  577. ;
  578. ; extern TQ3Status Q3Disk_SetData(TQ3GeometryObject disk, const TQ3DiskData *diskData)
  579. ;
  580.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  581.         IMPORT_CFM_FUNCTION Q3Disk_SetData
  582.     ENDIF
  583.  
  584. ;
  585. ; extern TQ3Status Q3Disk_GetData(TQ3GeometryObject disk, TQ3DiskData *diskData)
  586. ;
  587.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  588.         IMPORT_CFM_FUNCTION Q3Disk_GetData
  589.     ENDIF
  590.  
  591. ;
  592. ; extern TQ3Status Q3Disk_SetOrigin(TQ3GeometryObject disk, const TQ3Point3D *origin)
  593. ;
  594.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  595.         IMPORT_CFM_FUNCTION Q3Disk_SetOrigin
  596.     ENDIF
  597.  
  598. ;
  599. ; extern TQ3Status Q3Disk_SetMajorRadius(TQ3GeometryObject disk, const TQ3Vector3D *majorRadius)
  600. ;
  601.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  602.         IMPORT_CFM_FUNCTION Q3Disk_SetMajorRadius
  603.     ENDIF
  604.  
  605. ;
  606. ; extern TQ3Status Q3Disk_SetMinorRadius(TQ3GeometryObject disk, const TQ3Vector3D *minorRadius)
  607. ;
  608.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  609.         IMPORT_CFM_FUNCTION Q3Disk_SetMinorRadius
  610.     ENDIF
  611.  
  612. ;
  613. ; extern TQ3Status Q3Disk_GetOrigin(TQ3GeometryObject disk, TQ3Point3D *origin)
  614. ;
  615.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  616.         IMPORT_CFM_FUNCTION Q3Disk_GetOrigin
  617.     ENDIF
  618.  
  619. ;
  620. ; extern TQ3Status Q3Disk_GetMajorRadius(TQ3GeometryObject disk, TQ3Vector3D *majorRadius)
  621. ;
  622.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  623.         IMPORT_CFM_FUNCTION Q3Disk_GetMajorRadius
  624.     ENDIF
  625.  
  626. ;
  627. ; extern TQ3Status Q3Disk_GetMinorRadius(TQ3GeometryObject disk, TQ3Vector3D *minorRadius)
  628. ;
  629.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  630.         IMPORT_CFM_FUNCTION Q3Disk_GetMinorRadius
  631.     ENDIF
  632.  
  633.  
  634. ;
  635. ; extern TQ3Status Q3Disk_EmptyData(TQ3DiskData *diskData)
  636. ;
  637.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  638.         IMPORT_CFM_FUNCTION Q3Disk_EmptyData
  639.     ENDIF
  640.  
  641.  
  642.  
  643.  
  644. ; ******************************************************************************
  645. ; **                                                                             **
  646. ; **                     Ellipse Data Structure Definitions                         **
  647. ; **                                                                             **
  648. ; ****************************************************************************
  649.  
  650. TQ3EllipseData            RECORD 0
  651. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  652. majorRadius                 ds        TQ3Vector3D        ; offset: $C (12)
  653. minorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  654. uMin                     ds        Float32            ; offset: $24 (36)
  655. uMax                     ds        Float32            ; offset: $28 (40)
  656. ellipseAttributeSet         ds.l    1                ; offset: $2C (44)
  657. sizeof                     EQU *                    ; size:   $30 (48)
  658.                         ENDR
  659. ; ******************************************************************************
  660. ; **                                                                             **
  661. ; **                                Ellipse Routines                             **
  662. ; **                                                                             **
  663. ; ****************************************************************************
  664.  
  665. ;
  666. ; extern TQ3GeometryObject Q3Ellipse_New(const TQ3EllipseData *ellipseData)
  667. ;
  668.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  669.         IMPORT_CFM_FUNCTION Q3Ellipse_New
  670.     ENDIF
  671.  
  672. ;
  673. ; extern TQ3Status Q3Ellipse_Submit(const TQ3EllipseData *ellipseData, TQ3ViewObject view)
  674. ;
  675.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  676.         IMPORT_CFM_FUNCTION Q3Ellipse_Submit
  677.     ENDIF
  678.  
  679. ;
  680. ; extern TQ3Status Q3Ellipse_SetData(TQ3GeometryObject ellipse, const TQ3EllipseData *ellipseData)
  681. ;
  682.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  683.         IMPORT_CFM_FUNCTION Q3Ellipse_SetData
  684.     ENDIF
  685.  
  686. ;
  687. ; extern TQ3Status Q3Ellipse_GetData(TQ3GeometryObject ellipse, TQ3EllipseData *ellipseData)
  688. ;
  689.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  690.         IMPORT_CFM_FUNCTION Q3Ellipse_GetData
  691.     ENDIF
  692.  
  693. ;
  694. ; extern TQ3Status Q3Ellipse_SetOrigin(TQ3GeometryObject ellipse, const TQ3Point3D *origin)
  695. ;
  696.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  697.         IMPORT_CFM_FUNCTION Q3Ellipse_SetOrigin
  698.     ENDIF
  699.  
  700. ;
  701. ; extern TQ3Status Q3Ellipse_SetMajorRadius(TQ3GeometryObject ellipse, const TQ3Vector3D *majorRadius)
  702. ;
  703.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  704.         IMPORT_CFM_FUNCTION Q3Ellipse_SetMajorRadius
  705.     ENDIF
  706.  
  707. ;
  708. ; extern TQ3Status Q3Ellipse_SetMinorRadius(TQ3GeometryObject ellipse, const TQ3Vector3D *minorRadius)
  709. ;
  710.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  711.         IMPORT_CFM_FUNCTION Q3Ellipse_SetMinorRadius
  712.     ENDIF
  713.  
  714. ;
  715. ; extern TQ3Status Q3Ellipse_GetOrigin(TQ3GeometryObject ellipse, TQ3Point3D *origin)
  716. ;
  717.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  718.         IMPORT_CFM_FUNCTION Q3Ellipse_GetOrigin
  719.     ENDIF
  720.  
  721. ;
  722. ; extern TQ3Status Q3Ellipse_GetMajorRadius(TQ3GeometryObject ellipse, TQ3Vector3D *majorRadius)
  723. ;
  724.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  725.         IMPORT_CFM_FUNCTION Q3Ellipse_GetMajorRadius
  726.     ENDIF
  727.  
  728. ;
  729. ; extern TQ3Status Q3Ellipse_GetMinorRadius(TQ3GeometryObject ellipse, TQ3Vector3D *minorRadius)
  730. ;
  731.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  732.         IMPORT_CFM_FUNCTION Q3Ellipse_GetMinorRadius
  733.     ENDIF
  734.  
  735.  
  736. ;
  737. ; extern TQ3Status Q3Ellipse_EmptyData(TQ3EllipseData *ellipseData)
  738. ;
  739.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  740.         IMPORT_CFM_FUNCTION Q3Ellipse_EmptyData
  741.     ENDIF
  742.  
  743.  
  744.  
  745.  
  746. ; ******************************************************************************
  747. ; **                                                                          **
  748. ; **                            Ellipsoid Data structures                         **
  749. ; **                                                                          **
  750. ; ****************************************************************************
  751.  
  752. TQ3EllipsoidData        RECORD 0
  753. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  754. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  755. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  756. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  757. uMin                     ds        Float32            ; offset: $30 (48)
  758. uMax                     ds        Float32            ; offset: $34 (52)
  759. vMin                     ds        Float32            ; offset: $38 (56)
  760. vMax                     ds        Float32            ; offset: $3C (60)
  761. caps                     ds.l    1                ; offset: $40 (64)
  762. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  763. ellipsoidAttributeSet     ds.l    1                ; offset: $48 (72)
  764. sizeof                     EQU *                    ; size:   $4C (76)
  765.                         ENDR
  766. ; ******************************************************************************
  767. ; **                                                                          **
  768. ; **                            Ellipsoid Routines                                **
  769. ; **                                                                          **
  770. ; ****************************************************************************
  771.  
  772. ;
  773. ; extern TQ3GeometryObject Q3Ellipsoid_New(const TQ3EllipsoidData *ellipsoidData)
  774. ;
  775.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  776.         IMPORT_CFM_FUNCTION Q3Ellipsoid_New
  777.     ENDIF
  778.  
  779. ;
  780. ; extern TQ3Status Q3Ellipsoid_Submit(const TQ3EllipsoidData *ellipsoidData, TQ3ViewObject view)
  781. ;
  782.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  783.         IMPORT_CFM_FUNCTION Q3Ellipsoid_Submit
  784.     ENDIF
  785.  
  786. ;
  787. ; extern TQ3Status Q3Ellipsoid_SetData(TQ3GeometryObject ellipsoid, const TQ3EllipsoidData *ellipsoidData)
  788. ;
  789.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  790.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetData
  791.     ENDIF
  792.  
  793. ;
  794. ; extern TQ3Status Q3Ellipsoid_GetData(TQ3GeometryObject ellipsoid, TQ3EllipsoidData *ellipsoidData)
  795. ;
  796.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  797.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetData
  798.     ENDIF
  799.  
  800. ;
  801. ; extern TQ3Status Q3Ellipsoid_SetOrigin(TQ3GeometryObject ellipsoid, const TQ3Point3D *origin)
  802. ;
  803.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  804.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetOrigin
  805.     ENDIF
  806.  
  807. ;
  808. ; extern TQ3Status Q3Ellipsoid_SetOrientation(TQ3GeometryObject ellipsoid, const TQ3Vector3D *orientation)
  809. ;
  810.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  811.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetOrientation
  812.     ENDIF
  813.  
  814. ;
  815. ; extern TQ3Status Q3Ellipsoid_SetMajorRadius(TQ3GeometryObject ellipsoid, const TQ3Vector3D *majorRadius)
  816. ;
  817.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  818.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetMajorRadius
  819.     ENDIF
  820.  
  821. ;
  822. ; extern TQ3Status Q3Ellipsoid_SetMinorRadius(TQ3GeometryObject ellipsoid, const TQ3Vector3D *minorRadius)
  823. ;
  824.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  825.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetMinorRadius
  826.     ENDIF
  827.  
  828. ;
  829. ; extern TQ3Status Q3Ellipsoid_GetOrigin(TQ3GeometryObject ellipsoid, TQ3Point3D *origin)
  830. ;
  831.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  832.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetOrigin
  833.     ENDIF
  834.  
  835. ;
  836. ; extern TQ3Status Q3Ellipsoid_GetOrientation(TQ3GeometryObject ellipsoid, TQ3Vector3D *orientation)
  837. ;
  838.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  839.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetOrientation
  840.     ENDIF
  841.  
  842. ;
  843. ; extern TQ3Status Q3Ellipsoid_GetMajorRadius(TQ3GeometryObject ellipsoid, TQ3Vector3D *majorRadius)
  844. ;
  845.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  846.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetMajorRadius
  847.     ENDIF
  848.  
  849. ;
  850. ; extern TQ3Status Q3Ellipsoid_GetMinorRadius(TQ3GeometryObject ellipsoid, TQ3Vector3D *minorRadius)
  851. ;
  852.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  853.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetMinorRadius
  854.     ENDIF
  855.  
  856. ;
  857. ; extern TQ3Status Q3Ellipsoid_EmptyData(TQ3EllipsoidData *ellipsoidData)
  858. ;
  859.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  860.         IMPORT_CFM_FUNCTION Q3Ellipsoid_EmptyData
  861.     ENDIF
  862.  
  863.  
  864.  
  865.  
  866. ; ******************************************************************************
  867. ; **                                                                             **
  868. ; **                    General Polygon Data Structure Definitions                 **
  869. ; **                                                                             **
  870. ; ****************************************************************************
  871.  
  872.  
  873. ; typedef long                            TQ3GeneralPolygonShapeHint
  874. kQ3GeneralPolygonShapeHintComplex EQU    0
  875. kQ3GeneralPolygonShapeHintConcave EQU    1
  876. kQ3GeneralPolygonShapeHintConvex EQU    2
  877. TQ3GeneralPolygonContourData RECORD 0
  878. numVertices                 ds.l    1                ; offset: $0 (0)
  879. vertices                 ds.l    1                ; offset: $4 (4)
  880. sizeof                     EQU *                    ; size:   $8 (8)
  881.                         ENDR
  882. TQ3GeneralPolygonData    RECORD 0
  883. numContours                 ds.l    1                ; offset: $0 (0)
  884. contours                 ds.l    1                ; offset: $4 (4)
  885. shapeHint                 ds.l    1                ; offset: $8 (8)
  886. generalPolygonAttributeSet  ds.l 1                ; offset: $C (12)
  887. sizeof                     EQU *                    ; size:   $10 (16)
  888.                         ENDR
  889. ; ******************************************************************************
  890. ; **                                                                             **
  891. ; **                            General polygon Routines                         **
  892. ; **                                                                             **
  893. ; ****************************************************************************
  894.  
  895. ;
  896. ; extern TQ3GeometryObject Q3GeneralPolygon_New(const TQ3GeneralPolygonData *generalPolygonData)
  897. ;
  898.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  899.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_New
  900.     ENDIF
  901.  
  902. ;
  903. ; extern TQ3Status Q3GeneralPolygon_Submit(const TQ3GeneralPolygonData *generalPolygonData, TQ3ViewObject view)
  904. ;
  905.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  906.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_Submit
  907.     ENDIF
  908.  
  909. ;
  910. ; extern TQ3Status Q3GeneralPolygon_SetData(TQ3GeometryObject generalPolygon, const TQ3GeneralPolygonData *generalPolygonData)
  911. ;
  912.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  913.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetData
  914.     ENDIF
  915.  
  916. ;
  917. ; extern TQ3Status Q3GeneralPolygon_GetData(TQ3GeometryObject polygon, TQ3GeneralPolygonData *generalPolygonData)
  918. ;
  919.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  920.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetData
  921.     ENDIF
  922.  
  923. ;
  924. ; extern TQ3Status Q3GeneralPolygon_EmptyData(TQ3GeneralPolygonData *generalPolygonData)
  925. ;
  926.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  927.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_EmptyData
  928.     ENDIF
  929.  
  930. ;
  931. ; extern TQ3Status Q3GeneralPolygon_GetVertexPosition(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3Point3D *position)
  932. ;
  933.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  934.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetVertexPosition
  935.     ENDIF
  936.  
  937. ;
  938. ; extern TQ3Status Q3GeneralPolygon_SetVertexPosition(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, const TQ3Point3D *position)
  939. ;
  940.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  941.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetVertexPosition
  942.     ENDIF
  943.  
  944. ;
  945. ; extern TQ3Status Q3GeneralPolygon_GetVertexAttributeSet(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3AttributeSet *attributeSet)
  946. ;
  947.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  948.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetVertexAttributeSet
  949.     ENDIF
  950.  
  951. ;
  952. ; extern TQ3Status Q3GeneralPolygon_SetVertexAttributeSet(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3AttributeSet attributeSet)
  953. ;
  954.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  955.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetVertexAttributeSet
  956.     ENDIF
  957.  
  958. ;
  959. ; extern TQ3Status Q3GeneralPolygon_SetShapeHint(TQ3GeometryObject generalPolygon, TQ3GeneralPolygonShapeHint shapeHint)
  960. ;
  961.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  962.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetShapeHint
  963.     ENDIF
  964.  
  965. ;
  966. ; extern TQ3Status Q3GeneralPolygon_GetShapeHint(TQ3GeometryObject generalPolygon, TQ3GeneralPolygonShapeHint *shapeHint)
  967. ;
  968.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  969.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetShapeHint
  970.     ENDIF
  971.  
  972.  
  973.  
  974.  
  975. ; ******************************************************************************
  976. ; **                                                                             **
  977. ; **                        Line Data Structure Definitions                         **
  978. ; **                                                                             **
  979. ; ****************************************************************************
  980.  
  981. TQ3LineData                RECORD 0
  982. vertices                 ds.b    2 * TQ3Vertex3D.sizeof ; offset: $0 (0)
  983. lineAttributeSet         ds.l    1                ; offset: $20 (32)
  984. sizeof                     EQU *                    ; size:   $24 (36)
  985.                         ENDR
  986. ; ******************************************************************************
  987. ; **                                                                             **
  988. ; **                            Line Routines                                     **
  989. ; **                                                                             **
  990. ; ****************************************************************************
  991.  
  992. ;
  993. ; extern TQ3GeometryObject Q3Line_New(const TQ3LineData *lineData)
  994. ;
  995.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  996.         IMPORT_CFM_FUNCTION Q3Line_New
  997.     ENDIF
  998.  
  999. ;
  1000. ; extern TQ3Status Q3Line_Submit(const TQ3LineData *lineData, TQ3ViewObject view)
  1001. ;
  1002.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1003.         IMPORT_CFM_FUNCTION Q3Line_Submit
  1004.     ENDIF
  1005.  
  1006. ;
  1007. ; extern TQ3Status Q3Line_GetData(TQ3GeometryObject line, TQ3LineData *lineData)
  1008. ;
  1009.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1010.         IMPORT_CFM_FUNCTION Q3Line_GetData
  1011.     ENDIF
  1012.  
  1013. ;
  1014. ; extern TQ3Status Q3Line_SetData(TQ3GeometryObject line, const TQ3LineData *lineData)
  1015. ;
  1016.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1017.         IMPORT_CFM_FUNCTION Q3Line_SetData
  1018.     ENDIF
  1019.  
  1020. ;
  1021. ; extern TQ3Status Q3Line_GetVertexPosition(TQ3GeometryObject line, unsigned long index, TQ3Point3D *position)
  1022. ;
  1023.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1024.         IMPORT_CFM_FUNCTION Q3Line_GetVertexPosition
  1025.     ENDIF
  1026.  
  1027. ;
  1028. ; extern TQ3Status Q3Line_SetVertexPosition(TQ3GeometryObject line, unsigned long index, const TQ3Point3D *position)
  1029. ;
  1030.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1031.         IMPORT_CFM_FUNCTION Q3Line_SetVertexPosition
  1032.     ENDIF
  1033.  
  1034. ;
  1035. ; extern TQ3Status Q3Line_GetVertexAttributeSet(TQ3GeometryObject line, unsigned long index, TQ3AttributeSet *attributeSet)
  1036. ;
  1037.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1038.         IMPORT_CFM_FUNCTION Q3Line_GetVertexAttributeSet
  1039.     ENDIF
  1040.  
  1041. ;
  1042. ; extern TQ3Status Q3Line_SetVertexAttributeSet(TQ3GeometryObject line, unsigned long index, TQ3AttributeSet attributeSet)
  1043. ;
  1044.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1045.         IMPORT_CFM_FUNCTION Q3Line_SetVertexAttributeSet
  1046.     ENDIF
  1047.  
  1048. ;
  1049. ; extern TQ3Status Q3Line_EmptyData(TQ3LineData *lineData)
  1050. ;
  1051.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1052.         IMPORT_CFM_FUNCTION Q3Line_EmptyData
  1053.     ENDIF
  1054.  
  1055.  
  1056.  
  1057.  
  1058. ; ******************************************************************************
  1059. ; **                                                                             **
  1060. ; **                        Marker Data Structure Definitions                     **
  1061. ; **                                                                             **
  1062. ; ****************************************************************************
  1063.  
  1064. TQ3MarkerData            RECORD 0
  1065. location                 ds        TQ3Point3D        ; offset: $0 (0)
  1066. xOffset                     ds.l    1                ; offset: $C (12)
  1067. yOffset                     ds.l    1                ; offset: $10 (16)
  1068. bitmap                     ds        TQ3Bitmap        ; offset: $14 (20)
  1069. markerAttributeSet         ds.l    1                ; offset: $28 (40)
  1070. sizeof                     EQU *                    ; size:   $2C (44)
  1071.                         ENDR
  1072. ; ******************************************************************************
  1073. ; **                                                                             **
  1074. ; **                                Marker Routines                                 **
  1075. ; **                                                                             **
  1076. ; ****************************************************************************
  1077.  
  1078. ;
  1079. ; extern TQ3GeometryObject Q3Marker_New(const TQ3MarkerData *markerData)
  1080. ;
  1081.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1082.         IMPORT_CFM_FUNCTION Q3Marker_New
  1083.     ENDIF
  1084.  
  1085. ;
  1086. ; extern TQ3Status Q3Marker_Submit(const TQ3MarkerData *markerData, TQ3ViewObject view)
  1087. ;
  1088.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1089.         IMPORT_CFM_FUNCTION Q3Marker_Submit
  1090.     ENDIF
  1091.  
  1092. ;
  1093. ; extern TQ3Status Q3Marker_SetData(TQ3GeometryObject geometry, const TQ3MarkerData *markerData)
  1094. ;
  1095.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1096.         IMPORT_CFM_FUNCTION Q3Marker_SetData
  1097.     ENDIF
  1098.  
  1099. ;
  1100. ; extern TQ3Status Q3Marker_GetData(TQ3GeometryObject geometry, TQ3MarkerData *markerData)
  1101. ;
  1102.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1103.         IMPORT_CFM_FUNCTION Q3Marker_GetData
  1104.     ENDIF
  1105.  
  1106. ;
  1107. ; extern TQ3Status Q3Marker_EmptyData(TQ3MarkerData *markerData)
  1108. ;
  1109.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1110.         IMPORT_CFM_FUNCTION Q3Marker_EmptyData
  1111.     ENDIF
  1112.  
  1113. ;
  1114. ; extern TQ3Status Q3Marker_GetPosition(TQ3GeometryObject marker, TQ3Point3D *location)
  1115. ;
  1116.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1117.         IMPORT_CFM_FUNCTION Q3Marker_GetPosition
  1118.     ENDIF
  1119.  
  1120. ;
  1121. ; extern TQ3Status Q3Marker_SetPosition(TQ3GeometryObject marker, const TQ3Point3D *location)
  1122. ;
  1123.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1124.         IMPORT_CFM_FUNCTION Q3Marker_SetPosition
  1125.     ENDIF
  1126.  
  1127. ;
  1128. ; extern TQ3Status Q3Marker_GetXOffset(TQ3GeometryObject marker, long *xOffset)
  1129. ;
  1130.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1131.         IMPORT_CFM_FUNCTION Q3Marker_GetXOffset
  1132.     ENDIF
  1133.  
  1134. ;
  1135. ; extern TQ3Status Q3Marker_SetXOffset(TQ3GeometryObject marker, long xOffset)
  1136. ;
  1137.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1138.         IMPORT_CFM_FUNCTION Q3Marker_SetXOffset
  1139.     ENDIF
  1140.  
  1141. ;
  1142. ; extern TQ3Status Q3Marker_GetYOffset(TQ3GeometryObject marker, long *yOffset)
  1143. ;
  1144.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1145.         IMPORT_CFM_FUNCTION Q3Marker_GetYOffset
  1146.     ENDIF
  1147.  
  1148. ;
  1149. ; extern TQ3Status Q3Marker_SetYOffset(TQ3GeometryObject marker, long yOffset)
  1150. ;
  1151.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1152.         IMPORT_CFM_FUNCTION Q3Marker_SetYOffset
  1153.     ENDIF
  1154.  
  1155. ;
  1156. ; extern TQ3Status Q3Marker_GetBitmap(TQ3GeometryObject marker, TQ3Bitmap *bitmap)
  1157. ;
  1158.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1159.         IMPORT_CFM_FUNCTION Q3Marker_GetBitmap
  1160.     ENDIF
  1161.  
  1162. ;
  1163. ; extern TQ3Status Q3Marker_SetBitmap(TQ3GeometryObject marker, const TQ3Bitmap *bitmap)
  1164. ;
  1165.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1166.         IMPORT_CFM_FUNCTION Q3Marker_SetBitmap
  1167.     ENDIF
  1168.  
  1169.  
  1170.  
  1171.  
  1172. ; ******************************************************************************
  1173. ; **                                                                             **
  1174. ; **                        Mesh Data Structure Definitions                         **
  1175. ; **                                                                             **
  1176. ; ****************************************************************************
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188. ; ******************************************************************************
  1189. ; **                                                                             **
  1190. ; **                            Mesh Routines                                      **
  1191. ; **                                                                             **
  1192. ; ****************************************************************************
  1193.  
  1194. ; *  Constructors
  1195.  
  1196. ;
  1197. ; extern TQ3GeometryObject Q3Mesh_New(void )
  1198. ;
  1199.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1200.         IMPORT_CFM_FUNCTION Q3Mesh_New
  1201.     ENDIF
  1202.  
  1203. ;
  1204. ; extern TQ3MeshVertex Q3Mesh_VertexNew(TQ3GeometryObject mesh, const TQ3Vertex3D *vertex)
  1205. ;
  1206.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1207.         IMPORT_CFM_FUNCTION Q3Mesh_VertexNew
  1208.     ENDIF
  1209.  
  1210. ;
  1211. ; extern TQ3MeshFace Q3Mesh_FaceNew(TQ3GeometryObject mesh, unsigned long numVertices, const TQ3MeshVertex *vertices, TQ3AttributeSet attributeSet)
  1212. ;
  1213.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1214.         IMPORT_CFM_FUNCTION Q3Mesh_FaceNew
  1215.     ENDIF
  1216.  
  1217. ; *  Destructors
  1218.  
  1219. ;
  1220. ; extern TQ3Status Q3Mesh_VertexDelete(TQ3GeometryObject mesh, TQ3MeshVertex vertex)
  1221. ;
  1222.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1223.         IMPORT_CFM_FUNCTION Q3Mesh_VertexDelete
  1224.     ENDIF
  1225.  
  1226. ;
  1227. ; extern TQ3Status Q3Mesh_FaceDelete(TQ3GeometryObject mesh, TQ3MeshFace face)
  1228. ;
  1229.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1230.         IMPORT_CFM_FUNCTION Q3Mesh_FaceDelete
  1231.     ENDIF
  1232.  
  1233. ; * Methods
  1234.  
  1235. ;
  1236. ; extern TQ3Status Q3Mesh_DelayUpdates(TQ3GeometryObject mesh)
  1237. ;
  1238.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1239.         IMPORT_CFM_FUNCTION Q3Mesh_DelayUpdates
  1240.     ENDIF
  1241.  
  1242. ;
  1243. ; extern TQ3Status Q3Mesh_ResumeUpdates(TQ3GeometryObject mesh)
  1244. ;
  1245.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1246.         IMPORT_CFM_FUNCTION Q3Mesh_ResumeUpdates
  1247.     ENDIF
  1248.  
  1249. ;
  1250. ; extern TQ3MeshContour Q3Mesh_FaceToContour(TQ3GeometryObject mesh, TQ3MeshFace containerFace, TQ3MeshFace face)
  1251. ;
  1252.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1253.         IMPORT_CFM_FUNCTION Q3Mesh_FaceToContour
  1254.     ENDIF
  1255.  
  1256. ;
  1257. ; extern TQ3MeshFace Q3Mesh_ContourToFace(TQ3GeometryObject mesh, TQ3MeshContour contour)
  1258. ;
  1259.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1260.         IMPORT_CFM_FUNCTION Q3Mesh_ContourToFace
  1261.     ENDIF
  1262.  
  1263. ; * Mesh
  1264.  
  1265. ;
  1266. ; extern TQ3Status Q3Mesh_GetNumComponents(TQ3GeometryObject mesh, unsigned long *numComponents)
  1267. ;
  1268.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1269.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumComponents
  1270.     ENDIF
  1271.  
  1272. ;
  1273. ; extern TQ3Status Q3Mesh_GetNumEdges(TQ3GeometryObject mesh, unsigned long *numEdges)
  1274. ;
  1275.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1276.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumEdges
  1277.     ENDIF
  1278.  
  1279. ;
  1280. ; extern TQ3Status Q3Mesh_GetNumVertices(TQ3GeometryObject mesh, unsigned long *numVertices)
  1281. ;
  1282.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1283.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumVertices
  1284.     ENDIF
  1285.  
  1286. ;
  1287. ; extern TQ3Status Q3Mesh_GetNumFaces(TQ3GeometryObject mesh, unsigned long *numFaces)
  1288. ;
  1289.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1290.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumFaces
  1291.     ENDIF
  1292.  
  1293. ;
  1294. ; extern TQ3Status Q3Mesh_GetNumCorners(TQ3GeometryObject mesh, unsigned long *numCorners)
  1295. ;
  1296.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1297.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumCorners
  1298.     ENDIF
  1299.  
  1300. ;
  1301. ; extern TQ3Status Q3Mesh_GetOrientable(TQ3GeometryObject mesh, TQ3Boolean *orientable)
  1302. ;
  1303.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1304.         IMPORT_CFM_FUNCTION Q3Mesh_GetOrientable
  1305.     ENDIF
  1306.  
  1307. ; * Component
  1308.  
  1309. ;
  1310. ; extern TQ3Status Q3Mesh_GetComponentNumVertices(TQ3GeometryObject mesh, TQ3MeshComponent component, unsigned long *numVertices)
  1311. ;
  1312.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1313.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentNumVertices
  1314.     ENDIF
  1315.  
  1316. ;
  1317. ; extern TQ3Status Q3Mesh_GetComponentNumEdges(TQ3GeometryObject mesh, TQ3MeshComponent component, unsigned long *numEdges)
  1318. ;
  1319.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1320.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentNumEdges
  1321.     ENDIF
  1322.  
  1323. ;
  1324. ; extern TQ3Status Q3Mesh_GetComponentBoundingBox(TQ3GeometryObject mesh, TQ3MeshComponent component, TQ3BoundingBox *boundingBox)
  1325. ;
  1326.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1327.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentBoundingBox
  1328.     ENDIF
  1329.  
  1330. ;
  1331. ; extern TQ3Status Q3Mesh_GetComponentOrientable(TQ3GeometryObject mesh, TQ3MeshComponent component, TQ3Boolean *orientable)
  1332. ;
  1333.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1334.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentOrientable
  1335.     ENDIF
  1336.  
  1337. ; * Vertex
  1338.  
  1339. ;
  1340. ; extern TQ3Status Q3Mesh_GetVertexCoordinates(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3Point3D *coordinates)
  1341. ;
  1342.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1343.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexCoordinates
  1344.     ENDIF
  1345.  
  1346. ;
  1347. ; extern TQ3Status Q3Mesh_GetVertexIndex(TQ3GeometryObject mesh, TQ3MeshVertex vertex, unsigned long *index)
  1348. ;
  1349.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1350.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexIndex
  1351.     ENDIF
  1352.  
  1353. ;
  1354. ; extern TQ3Status Q3Mesh_GetVertexOnBoundary(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3Boolean *onBoundary)
  1355. ;
  1356.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1357.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexOnBoundary
  1358.     ENDIF
  1359.  
  1360. ;
  1361. ; extern TQ3Status Q3Mesh_GetVertexComponent(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshComponent *component)
  1362. ;
  1363.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1364.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexComponent
  1365.     ENDIF
  1366.  
  1367. ;
  1368. ; extern TQ3Status Q3Mesh_GetVertexAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3AttributeSet *attributeSet)
  1369. ;
  1370.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1371.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexAttributeSet
  1372.     ENDIF
  1373.  
  1374.  
  1375. ;
  1376. ; extern TQ3Status Q3Mesh_SetVertexCoordinates(TQ3GeometryObject mesh, TQ3MeshVertex vertex, const TQ3Point3D *coordinates)
  1377. ;
  1378.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1379.         IMPORT_CFM_FUNCTION Q3Mesh_SetVertexCoordinates
  1380.     ENDIF
  1381.  
  1382. ;
  1383. ; extern TQ3Status Q3Mesh_SetVertexAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3AttributeSet attributeSet)
  1384. ;
  1385.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1386.         IMPORT_CFM_FUNCTION Q3Mesh_SetVertexAttributeSet
  1387.     ENDIF
  1388.  
  1389.  
  1390. ; * Face
  1391.  
  1392. ;
  1393. ; extern TQ3Status Q3Mesh_GetFaceNumVertices(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *numVertices)
  1394. ;
  1395.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1396.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceNumVertices
  1397.     ENDIF
  1398.  
  1399. ;
  1400. ; extern TQ3Status Q3Mesh_GetFacePlaneEquation(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3PlaneEquation *planeEquation)
  1401. ;
  1402.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1403.         IMPORT_CFM_FUNCTION Q3Mesh_GetFacePlaneEquation
  1404.     ENDIF
  1405.  
  1406. ;
  1407. ; extern TQ3Status Q3Mesh_GetFaceNumContours(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *numContours)
  1408. ;
  1409.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1410.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceNumContours
  1411.     ENDIF
  1412.  
  1413. ;
  1414. ; extern TQ3Status Q3Mesh_GetFaceIndex(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *index)
  1415. ;
  1416.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1417.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceIndex
  1418.     ENDIF
  1419.  
  1420. ;
  1421. ; extern TQ3Status Q3Mesh_GetFaceComponent(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3MeshComponent *component)
  1422. ;
  1423.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1424.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceComponent
  1425.     ENDIF
  1426.  
  1427. ;
  1428. ; extern TQ3Status Q3Mesh_GetFaceAttributeSet(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3AttributeSet *attributeSet)
  1429. ;
  1430.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1431.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceAttributeSet
  1432.     ENDIF
  1433.  
  1434.  
  1435. ;
  1436. ; extern TQ3Status Q3Mesh_SetFaceAttributeSet(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3AttributeSet attributeSet)
  1437. ;
  1438.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1439.         IMPORT_CFM_FUNCTION Q3Mesh_SetFaceAttributeSet
  1440.     ENDIF
  1441.  
  1442. ; * Edge
  1443.  
  1444. ;
  1445. ; extern TQ3Status Q3Mesh_GetEdgeVertices(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshVertex *vertex1, TQ3MeshVertex *vertex2)
  1446. ;
  1447.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1448.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeVertices
  1449.     ENDIF
  1450.  
  1451. ;
  1452. ; extern TQ3Status Q3Mesh_GetEdgeFaces(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshFace *face1, TQ3MeshFace *face2)
  1453. ;
  1454.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1455.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeFaces
  1456.     ENDIF
  1457.  
  1458. ;
  1459. ; extern TQ3Status Q3Mesh_GetEdgeOnBoundary(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3Boolean *onBoundary)
  1460. ;
  1461.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1462.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeOnBoundary
  1463.     ENDIF
  1464.  
  1465. ;
  1466. ; extern TQ3Status Q3Mesh_GetEdgeComponent(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshComponent *component)
  1467. ;
  1468.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1469.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeComponent
  1470.     ENDIF
  1471.  
  1472. ;
  1473. ; extern TQ3Status Q3Mesh_GetEdgeAttributeSet(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3AttributeSet *attributeSet)
  1474. ;
  1475.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1476.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeAttributeSet
  1477.     ENDIF
  1478.  
  1479.  
  1480. ;
  1481. ; extern TQ3Status Q3Mesh_SetEdgeAttributeSet(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3AttributeSet attributeSet)
  1482. ;
  1483.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1484.         IMPORT_CFM_FUNCTION Q3Mesh_SetEdgeAttributeSet
  1485.     ENDIF
  1486.  
  1487. ; * Contour
  1488.  
  1489. ;
  1490. ; extern TQ3Status Q3Mesh_GetContourFace(TQ3GeometryObject mesh, TQ3MeshContour contour, TQ3MeshFace *face)
  1491. ;
  1492.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1493.         IMPORT_CFM_FUNCTION Q3Mesh_GetContourFace
  1494.     ENDIF
  1495.  
  1496. ;
  1497. ; extern TQ3Status Q3Mesh_GetContourNumVertices(TQ3GeometryObject mesh, TQ3MeshContour contour, unsigned long *numVertices)
  1498. ;
  1499.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1500.         IMPORT_CFM_FUNCTION Q3Mesh_GetContourNumVertices
  1501.     ENDIF
  1502.  
  1503. ; * Corner
  1504.  
  1505. ;
  1506. ; extern TQ3Status Q3Mesh_GetCornerAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshFace face, TQ3AttributeSet *attributeSet)
  1507. ;
  1508.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1509.         IMPORT_CFM_FUNCTION Q3Mesh_GetCornerAttributeSet
  1510.     ENDIF
  1511.  
  1512. ;
  1513. ; extern TQ3Status Q3Mesh_SetCornerAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshFace face, TQ3AttributeSet attributeSet)
  1514. ;
  1515.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1516.         IMPORT_CFM_FUNCTION Q3Mesh_SetCornerAttributeSet
  1517.     ENDIF
  1518.  
  1519.  
  1520. ; * Public Mesh Iterators
  1521.  
  1522. TQ3MeshIterator            RECORD 0
  1523. var1                     ds.l    1                ; offset: $0 (0)
  1524. var2                     ds.l    1                ; offset: $4 (4)
  1525. var3                     ds.l    1                ; offset: $8 (8)
  1526. field1                     ds.l    1                ; offset: $C (12)
  1527. field2                     ds.b    4                ; offset: $10 (16)
  1528. sizeof                     EQU *                    ; size:   $14 (20)
  1529.                         ENDR
  1530. ;
  1531. ; extern TQ3MeshComponent Q3Mesh_FirstMeshComponent(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1532. ;
  1533.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1534.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshComponent
  1535.     ENDIF
  1536.  
  1537. ;
  1538. ; extern TQ3MeshComponent Q3Mesh_NextMeshComponent(TQ3MeshIterator *iterator)
  1539. ;
  1540.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1541.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshComponent
  1542.     ENDIF
  1543.  
  1544. ;
  1545. ; extern TQ3MeshVertex Q3Mesh_FirstComponentVertex(TQ3MeshComponent component, TQ3MeshIterator *iterator)
  1546. ;
  1547.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1548.         IMPORT_CFM_FUNCTION Q3Mesh_FirstComponentVertex
  1549.     ENDIF
  1550.  
  1551. ;
  1552. ; extern TQ3MeshVertex Q3Mesh_NextComponentVertex(TQ3MeshIterator *iterator)
  1553. ;
  1554.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1555.         IMPORT_CFM_FUNCTION Q3Mesh_NextComponentVertex
  1556.     ENDIF
  1557.  
  1558. ;
  1559. ; extern TQ3MeshEdge Q3Mesh_FirstComponentEdge(TQ3MeshComponent component, TQ3MeshIterator *iterator)
  1560. ;
  1561.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1562.         IMPORT_CFM_FUNCTION Q3Mesh_FirstComponentEdge
  1563.     ENDIF
  1564.  
  1565. ;
  1566. ; extern TQ3MeshEdge Q3Mesh_NextComponentEdge(TQ3MeshIterator *iterator)
  1567. ;
  1568.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1569.         IMPORT_CFM_FUNCTION Q3Mesh_NextComponentEdge
  1570.     ENDIF
  1571.  
  1572. ;
  1573. ; extern TQ3MeshVertex Q3Mesh_FirstMeshVertex(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1574. ;
  1575.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1576.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshVertex
  1577.     ENDIF
  1578.  
  1579. ;
  1580. ; extern TQ3MeshVertex Q3Mesh_NextMeshVertex(TQ3MeshIterator *iterator)
  1581. ;
  1582.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1583.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshVertex
  1584.     ENDIF
  1585.  
  1586. ;
  1587. ; extern TQ3MeshFace Q3Mesh_FirstMeshFace(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1588. ;
  1589.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1590.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshFace
  1591.     ENDIF
  1592.  
  1593. ;
  1594. ; extern TQ3MeshFace Q3Mesh_NextMeshFace(TQ3MeshIterator *iterator)
  1595. ;
  1596.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1597.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshFace
  1598.     ENDIF
  1599.  
  1600. ;
  1601. ; extern TQ3MeshEdge Q3Mesh_FirstMeshEdge(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1602. ;
  1603.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1604.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshEdge
  1605.     ENDIF
  1606.  
  1607. ;
  1608. ; extern TQ3MeshEdge Q3Mesh_NextMeshEdge(TQ3MeshIterator *iterator)
  1609. ;
  1610.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1611.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshEdge
  1612.     ENDIF
  1613.  
  1614. ;
  1615. ; extern TQ3MeshEdge Q3Mesh_FirstVertexEdge(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1616. ;
  1617.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1618.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexEdge
  1619.     ENDIF
  1620.  
  1621. ;
  1622. ; extern TQ3MeshEdge Q3Mesh_NextVertexEdge(TQ3MeshIterator *iterator)
  1623. ;
  1624.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1625.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexEdge
  1626.     ENDIF
  1627.  
  1628. ;
  1629. ; extern TQ3MeshVertex Q3Mesh_FirstVertexVertex(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1630. ;
  1631.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1632.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexVertex
  1633.     ENDIF
  1634.  
  1635. ;
  1636. ; extern TQ3MeshVertex Q3Mesh_NextVertexVertex(TQ3MeshIterator *iterator)
  1637. ;
  1638.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1639.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexVertex
  1640.     ENDIF
  1641.  
  1642. ;
  1643. ; extern TQ3MeshFace Q3Mesh_FirstVertexFace(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1644. ;
  1645.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1646.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexFace
  1647.     ENDIF
  1648.  
  1649. ;
  1650. ; extern TQ3MeshFace Q3Mesh_NextVertexFace(TQ3MeshIterator *iterator)
  1651. ;
  1652.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1653.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexFace
  1654.     ENDIF
  1655.  
  1656. ;
  1657. ; extern TQ3MeshEdge Q3Mesh_FirstFaceEdge(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1658. ;
  1659.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1660.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceEdge
  1661.     ENDIF
  1662.  
  1663. ;
  1664. ; extern TQ3MeshEdge Q3Mesh_NextFaceEdge(TQ3MeshIterator *iterator)
  1665. ;
  1666.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1667.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceEdge
  1668.     ENDIF
  1669.  
  1670. ;
  1671. ; extern TQ3MeshVertex Q3Mesh_FirstFaceVertex(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1672. ;
  1673.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1674.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceVertex
  1675.     ENDIF
  1676.  
  1677. ;
  1678. ; extern TQ3MeshVertex Q3Mesh_NextFaceVertex(TQ3MeshIterator *iterator)
  1679. ;
  1680.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1681.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceVertex
  1682.     ENDIF
  1683.  
  1684. ;
  1685. ; extern TQ3MeshFace Q3Mesh_FirstFaceFace(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1686. ;
  1687.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1688.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceFace
  1689.     ENDIF
  1690.  
  1691. ;
  1692. ; extern TQ3MeshFace Q3Mesh_NextFaceFace(TQ3MeshIterator *iterator)
  1693. ;
  1694.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1695.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceFace
  1696.     ENDIF
  1697.  
  1698. ;
  1699. ; extern TQ3MeshContour Q3Mesh_FirstFaceContour(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1700. ;
  1701.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1702.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceContour
  1703.     ENDIF
  1704.  
  1705. ;
  1706. ; extern TQ3MeshContour Q3Mesh_NextFaceContour(TQ3MeshIterator *iterator)
  1707. ;
  1708.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1709.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceContour
  1710.     ENDIF
  1711.  
  1712. ;
  1713. ; extern TQ3MeshEdge Q3Mesh_FirstContourEdge(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1714. ;
  1715.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1716.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourEdge
  1717.     ENDIF
  1718.  
  1719. ;
  1720. ; extern TQ3MeshEdge Q3Mesh_NextContourEdge(TQ3MeshIterator *iterator)
  1721. ;
  1722.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1723.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourEdge
  1724.     ENDIF
  1725.  
  1726. ;
  1727. ; extern TQ3MeshVertex Q3Mesh_FirstContourVertex(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1728. ;
  1729.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1730.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourVertex
  1731.     ENDIF
  1732.  
  1733. ;
  1734. ; extern TQ3MeshVertex Q3Mesh_NextContourVertex(TQ3MeshIterator *iterator)
  1735. ;
  1736.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1737.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourVertex
  1738.     ENDIF
  1739.  
  1740. ;
  1741. ; extern TQ3MeshFace Q3Mesh_FirstContourFace(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1742. ;
  1743.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1744.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourFace
  1745.     ENDIF
  1746.  
  1747. ;
  1748. ; extern TQ3MeshFace Q3Mesh_NextContourFace(TQ3MeshIterator *iterator)
  1749. ;
  1750.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1751.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourFace
  1752.     ENDIF
  1753.  
  1754.  
  1755.  
  1756. ; ******************************************************************************
  1757. ; **                                                                             **
  1758. ; **                            Maximum order for NURB Curves                     **
  1759. ; **                                                                             **
  1760. ; ****************************************************************************
  1761.  
  1762.  
  1763. ; ******************************************************************************
  1764. ; **                                                                             **
  1765. ; **                        NURB Data Structure Definitions                         **
  1766. ; **                                                                             **
  1767. ; ****************************************************************************
  1768.  
  1769. TQ3NURBCurveData        RECORD 0
  1770. order                     ds.l    1                ; offset: $0 (0)
  1771. numPoints                 ds.l    1                ; offset: $4 (4)
  1772. controlPoints             ds.l    1                ; offset: $8 (8)
  1773. knots                     ds.l    1                ; offset: $C (12)
  1774. curveAttributeSet         ds.l    1                ; offset: $10 (16)
  1775. sizeof                     EQU *                    ; size:   $14 (20)
  1776.                         ENDR
  1777. ; ******************************************************************************
  1778. ; **                                                                             **
  1779. ; **                                NURB Curve Routines                             **
  1780. ; **                                                                             **
  1781. ; ****************************************************************************
  1782.  
  1783. ;
  1784. ; extern TQ3GeometryObject Q3NURBCurve_New(const TQ3NURBCurveData *curveData)
  1785. ;
  1786.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1787.         IMPORT_CFM_FUNCTION Q3NURBCurve_New
  1788.     ENDIF
  1789.  
  1790. ;
  1791. ; extern TQ3Status Q3NURBCurve_Submit(const TQ3NURBCurveData *curveData, TQ3ViewObject view)
  1792. ;
  1793.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1794.         IMPORT_CFM_FUNCTION Q3NURBCurve_Submit
  1795.     ENDIF
  1796.  
  1797. ;
  1798. ; extern TQ3Status Q3NURBCurve_SetData(TQ3GeometryObject curve, const TQ3NURBCurveData *nurbCurveData)
  1799. ;
  1800.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1801.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetData
  1802.     ENDIF
  1803.  
  1804. ;
  1805. ; extern TQ3Status Q3NURBCurve_GetData(TQ3GeometryObject curve, TQ3NURBCurveData *nurbCurveData)
  1806. ;
  1807.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1808.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetData
  1809.     ENDIF
  1810.  
  1811. ;
  1812. ; extern TQ3Status Q3NURBCurve_EmptyData(TQ3NURBCurveData *nurbCurveData)
  1813. ;
  1814.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1815.         IMPORT_CFM_FUNCTION Q3NURBCurve_EmptyData
  1816.     ENDIF
  1817.  
  1818. ;
  1819. ; extern TQ3Status Q3NURBCurve_SetControlPoint(TQ3GeometryObject curve, unsigned long pointIndex, const TQ3RationalPoint4D *point4D)
  1820. ;
  1821.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1822.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetControlPoint
  1823.     ENDIF
  1824.  
  1825. ;
  1826. ; extern TQ3Status Q3NURBCurve_GetControlPoint(TQ3GeometryObject curve, unsigned long pointIndex, TQ3RationalPoint4D *point4D)
  1827. ;
  1828.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1829.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetControlPoint
  1830.     ENDIF
  1831.  
  1832. ;
  1833. ; extern TQ3Status Q3NURBCurve_SetKnot(TQ3GeometryObject curve, unsigned long knotIndex, float knotValue)
  1834. ;
  1835.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1836.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetKnot
  1837.     ENDIF
  1838.  
  1839. ;
  1840. ; extern TQ3Status Q3NURBCurve_GetKnot(TQ3GeometryObject curve, unsigned long knotIndex, float *knotValue)
  1841. ;
  1842.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1843.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetKnot
  1844.     ENDIF
  1845.  
  1846.  
  1847. ; ******************************************************************************
  1848. ; **                                                                             **
  1849. ; **                            Maximum NURB Patch Order                         **
  1850. ; **                                                                             **
  1851. ; ****************************************************************************
  1852.  
  1853. ; ******************************************************************************
  1854. ; **                                                                             **
  1855. ; **                        NURB Patch Data Structure Definitions                 **
  1856. ; **                                                                             **
  1857. ; ****************************************************************************
  1858.  
  1859. TQ3NURBPatchTrimCurveData RECORD 0
  1860. order                     ds.l    1                ; offset: $0 (0)
  1861. numPoints                 ds.l    1                ; offset: $4 (4)
  1862. controlPoints             ds.l    1                ; offset: $8 (8)
  1863. knots                     ds.l    1                ; offset: $C (12)
  1864. sizeof                     EQU *                    ; size:   $10 (16)
  1865.                         ENDR
  1866. TQ3NURBPatchTrimLoopData RECORD 0
  1867. numTrimCurves             ds.l    1                ; offset: $0 (0)
  1868. trimCurves                 ds.l    1                ; offset: $4 (4)
  1869. sizeof                     EQU *                    ; size:   $8 (8)
  1870.                         ENDR
  1871. TQ3NURBPatchData        RECORD 0
  1872. uOrder                     ds.l    1                ; offset: $0 (0)
  1873. vOrder                     ds.l    1                ; offset: $4 (4)
  1874. numRows                     ds.l    1                ; offset: $8 (8)
  1875. numColumns                 ds.l    1                ; offset: $C (12)
  1876. controlPoints             ds.l    1                ; offset: $10 (16)
  1877. uKnots                     ds.l    1                ; offset: $14 (20)
  1878. vKnots                     ds.l    1                ; offset: $18 (24)
  1879. numTrimLoops             ds.l    1                ; offset: $1C (28)
  1880. trimLoops                 ds.l    1                ; offset: $20 (32)
  1881. patchAttributeSet         ds.l    1                ; offset: $24 (36)
  1882. sizeof                     EQU *                    ; size:   $28 (40)
  1883.                         ENDR
  1884. ; ******************************************************************************
  1885. ; **                                                                             **
  1886. ; **                                NURB Patch Routines                             **
  1887. ; **                                                                             **
  1888. ; ****************************************************************************
  1889.  
  1890. ;
  1891. ; extern TQ3GeometryObject Q3NURBPatch_New(const TQ3NURBPatchData *nurbPatchData)
  1892. ;
  1893.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1894.         IMPORT_CFM_FUNCTION Q3NURBPatch_New
  1895.     ENDIF
  1896.  
  1897. ;
  1898. ; extern TQ3Status Q3NURBPatch_Submit(const TQ3NURBPatchData *nurbPatchData, TQ3ViewObject view)
  1899. ;
  1900.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1901.         IMPORT_CFM_FUNCTION Q3NURBPatch_Submit
  1902.     ENDIF
  1903.  
  1904. ;
  1905. ; extern TQ3Status Q3NURBPatch_SetData(TQ3GeometryObject nurbPatch, const TQ3NURBPatchData *nurbPatchData)
  1906. ;
  1907.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1908.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetData
  1909.     ENDIF
  1910.  
  1911. ;
  1912. ; extern TQ3Status Q3NURBPatch_GetData(TQ3GeometryObject nurbPatch, TQ3NURBPatchData *nurbPatchData)
  1913. ;
  1914.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1915.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetData
  1916.     ENDIF
  1917.  
  1918. ;
  1919. ; extern TQ3Status Q3NURBPatch_SetControlPoint(TQ3GeometryObject nurbPatch, unsigned long rowIndex, unsigned long columnIndex, const TQ3RationalPoint4D *point4D)
  1920. ;
  1921.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1922.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetControlPoint
  1923.     ENDIF
  1924.  
  1925. ;
  1926. ; extern TQ3Status Q3NURBPatch_GetControlPoint(TQ3GeometryObject nurbPatch, unsigned long rowIndex, unsigned long columnIndex, TQ3RationalPoint4D *point4D)
  1927. ;
  1928.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1929.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetControlPoint
  1930.     ENDIF
  1931.  
  1932. ;
  1933. ; extern TQ3Status Q3NURBPatch_SetUKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float knotValue)
  1934. ;
  1935.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1936.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetUKnot
  1937.     ENDIF
  1938.  
  1939. ;
  1940. ; extern TQ3Status Q3NURBPatch_SetVKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float knotValue)
  1941. ;
  1942.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1943.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetVKnot
  1944.     ENDIF
  1945.  
  1946. ;
  1947. ; extern TQ3Status Q3NURBPatch_GetUKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float *knotValue)
  1948. ;
  1949.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1950.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetUKnot
  1951.     ENDIF
  1952.  
  1953. ;
  1954. ; extern TQ3Status Q3NURBPatch_GetVKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float *knotValue)
  1955. ;
  1956.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1957.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetVKnot
  1958.     ENDIF
  1959.  
  1960. ;
  1961. ; extern TQ3Status Q3NURBPatch_EmptyData(TQ3NURBPatchData *nurbPatchData)
  1962. ;
  1963.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1964.         IMPORT_CFM_FUNCTION Q3NURBPatch_EmptyData
  1965.     ENDIF
  1966.  
  1967.  
  1968.  
  1969.  
  1970. ; ******************************************************************************
  1971. ; **                                                                             **
  1972. ; **                        Pixmap Marker Data Structure Definitions             **
  1973. ; **                                                                             **
  1974. ; ****************************************************************************
  1975.  
  1976. TQ3PixmapMarkerData        RECORD 0
  1977. position                 ds        TQ3Point3D        ; offset: $0 (0)
  1978. xOffset                     ds.l    1                ; offset: $C (12)
  1979. yOffset                     ds.l    1                ; offset: $10 (16)
  1980. pixmap                     ds        TQ3StoragePixmap ; offset: $14 (20)
  1981. pixmapMarkerAttributeSet  ds.l    1                ; offset: $34 (52)
  1982. sizeof                     EQU *                    ; size:   $38 (56)
  1983.                         ENDR
  1984. ; ******************************************************************************
  1985. ; **                                                                             **
  1986. ; **                                Pixmap Marker Routines                         **
  1987. ; **                                                                             **
  1988. ; ****************************************************************************
  1989.  
  1990. ;
  1991. ; extern TQ3GeometryObject Q3PixmapMarker_New(const TQ3PixmapMarkerData *pixmapMarkerData)
  1992. ;
  1993.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1994.         IMPORT_CFM_FUNCTION Q3PixmapMarker_New
  1995.     ENDIF
  1996.  
  1997. ;
  1998. ; extern TQ3Status Q3PixmapMarker_Submit(const TQ3PixmapMarkerData *pixmapMarkerData, TQ3ViewObject view)
  1999. ;
  2000.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2001.         IMPORT_CFM_FUNCTION Q3PixmapMarker_Submit
  2002.     ENDIF
  2003.  
  2004. ;
  2005. ; extern TQ3Status Q3PixmapMarker_SetData(TQ3GeometryObject geometry, const TQ3PixmapMarkerData *pixmapMarkerData)
  2006. ;
  2007.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2008.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetData
  2009.     ENDIF
  2010.  
  2011. ;
  2012. ; extern TQ3Status Q3PixmapMarker_GetData(TQ3GeometryObject geometry, TQ3PixmapMarkerData *pixmapMarkerData)
  2013. ;
  2014.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2015.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetData
  2016.     ENDIF
  2017.  
  2018. ;
  2019. ; extern TQ3Status Q3PixmapMarker_EmptyData(TQ3PixmapMarkerData *pixmapMarkerData)
  2020. ;
  2021.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2022.         IMPORT_CFM_FUNCTION Q3PixmapMarker_EmptyData
  2023.     ENDIF
  2024.  
  2025. ;
  2026. ; extern TQ3Status Q3PixmapMarker_GetPosition(TQ3GeometryObject pixmapMarker, TQ3Point3D *position)
  2027. ;
  2028.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2029.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetPosition
  2030.     ENDIF
  2031.  
  2032. ;
  2033. ; extern TQ3Status Q3PixmapMarker_SetPosition(TQ3GeometryObject pixmapMarker, const TQ3Point3D *position)
  2034. ;
  2035.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2036.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetPosition
  2037.     ENDIF
  2038.  
  2039. ;
  2040. ; extern TQ3Status Q3PixmapMarker_GetXOffset(TQ3GeometryObject pixmapMarker, long *xOffset)
  2041. ;
  2042.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2043.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetXOffset
  2044.     ENDIF
  2045.  
  2046. ;
  2047. ; extern TQ3Status Q3PixmapMarker_SetXOffset(TQ3GeometryObject pixmapMarker, long xOffset)
  2048. ;
  2049.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2050.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetXOffset
  2051.     ENDIF
  2052.  
  2053. ;
  2054. ; extern TQ3Status Q3PixmapMarker_GetYOffset(TQ3GeometryObject pixmapMarker, long *yOffset)
  2055. ;
  2056.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2057.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetYOffset
  2058.     ENDIF
  2059.  
  2060. ;
  2061. ; extern TQ3Status Q3PixmapMarker_SetYOffset(TQ3GeometryObject pixmapMarker, long yOffset)
  2062. ;
  2063.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2064.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetYOffset
  2065.     ENDIF
  2066.  
  2067. ;
  2068. ; extern TQ3Status Q3PixmapMarker_GetPixmap(TQ3GeometryObject pixmapMarker, TQ3StoragePixmap *pixmap)
  2069. ;
  2070.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2071.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetPixmap
  2072.     ENDIF
  2073.  
  2074. ;
  2075. ; extern TQ3Status Q3PixmapMarker_SetPixmap(TQ3GeometryObject pixmapMarker, const TQ3StoragePixmap *pixmap)
  2076. ;
  2077.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2078.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetPixmap
  2079.     ENDIF
  2080.  
  2081.  
  2082.  
  2083.  
  2084. ; ******************************************************************************
  2085. ; **                                                                             **
  2086. ; **                        Point Data Structure Definitions                     **
  2087. ; **                                                                             **
  2088. ; ****************************************************************************
  2089.  
  2090. TQ3PointData            RECORD 0
  2091. point                     ds        TQ3Point3D        ; offset: $0 (0)
  2092. pointAttributeSet         ds.l    1                ; offset: $C (12)
  2093. sizeof                     EQU *                    ; size:   $10 (16)
  2094.                         ENDR
  2095. ; ******************************************************************************
  2096. ; **                                                                             **
  2097. ; **                                Point Routines                                 **
  2098. ; **                                                                             **
  2099. ; ****************************************************************************
  2100.  
  2101. ;
  2102. ; extern TQ3GeometryObject Q3Point_New(const TQ3PointData *pointData)
  2103. ;
  2104.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2105.         IMPORT_CFM_FUNCTION Q3Point_New
  2106.     ENDIF
  2107.  
  2108. ;
  2109. ; extern TQ3Status Q3Point_Submit(const TQ3PointData *pointData, TQ3ViewObject view)
  2110. ;
  2111.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2112.         IMPORT_CFM_FUNCTION Q3Point_Submit
  2113.     ENDIF
  2114.  
  2115. ;
  2116. ; extern TQ3Status Q3Point_GetData(TQ3GeometryObject point, TQ3PointData *pointData)
  2117. ;
  2118.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2119.         IMPORT_CFM_FUNCTION Q3Point_GetData
  2120.     ENDIF
  2121.  
  2122. ;
  2123. ; extern TQ3Status Q3Point_SetData(TQ3GeometryObject point, const TQ3PointData *pointData)
  2124. ;
  2125.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2126.         IMPORT_CFM_FUNCTION Q3Point_SetData
  2127.     ENDIF
  2128.  
  2129. ;
  2130. ; extern TQ3Status Q3Point_EmptyData(TQ3PointData *pointData)
  2131. ;
  2132.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2133.         IMPORT_CFM_FUNCTION Q3Point_EmptyData
  2134.     ENDIF
  2135.  
  2136. ;
  2137. ; extern TQ3Status Q3Point_SetPosition(TQ3GeometryObject point, const TQ3Point3D *position)
  2138. ;
  2139.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2140.         IMPORT_CFM_FUNCTION Q3Point_SetPosition
  2141.     ENDIF
  2142.  
  2143. ;
  2144. ; extern TQ3Status Q3Point_GetPosition(TQ3GeometryObject point, TQ3Point3D *position)
  2145. ;
  2146.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2147.         IMPORT_CFM_FUNCTION Q3Point_GetPosition
  2148.     ENDIF
  2149.  
  2150.  
  2151.  
  2152.  
  2153. ; ******************************************************************************
  2154. ; **                                                                             **
  2155. ; **                        Polygon Data Structure Definitions                     **
  2156. ; **                                                                             **
  2157. ; ****************************************************************************
  2158.  
  2159. TQ3PolygonData            RECORD 0
  2160. numVertices                 ds.l    1                ; offset: $0 (0)
  2161. vertices                 ds.l    1                ; offset: $4 (4)
  2162. polygonAttributeSet         ds.l    1                ; offset: $8 (8)
  2163. sizeof                     EQU *                    ; size:   $C (12)
  2164.                         ENDR
  2165. ; ******************************************************************************
  2166. ; **                                                                             **
  2167. ; **                            Polygon Routines                                 **
  2168. ; **                                                                             **
  2169. ; ****************************************************************************
  2170.  
  2171. ;
  2172. ; extern TQ3GeometryObject Q3Polygon_New(const TQ3PolygonData *polygonData)
  2173. ;
  2174.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2175.         IMPORT_CFM_FUNCTION Q3Polygon_New
  2176.     ENDIF
  2177.  
  2178. ;
  2179. ; extern TQ3Status Q3Polygon_Submit(const TQ3PolygonData *polygonData, TQ3ViewObject view)
  2180. ;
  2181.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2182.         IMPORT_CFM_FUNCTION Q3Polygon_Submit
  2183.     ENDIF
  2184.  
  2185. ;
  2186. ; extern TQ3Status Q3Polygon_SetData(TQ3GeometryObject polygon, const TQ3PolygonData *polygonData)
  2187. ;
  2188.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2189.         IMPORT_CFM_FUNCTION Q3Polygon_SetData
  2190.     ENDIF
  2191.  
  2192. ;
  2193. ; extern TQ3Status Q3Polygon_GetData(TQ3GeometryObject polygon, TQ3PolygonData *polygonData)
  2194. ;
  2195.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2196.         IMPORT_CFM_FUNCTION Q3Polygon_GetData
  2197.     ENDIF
  2198.  
  2199. ;
  2200. ; extern TQ3Status Q3Polygon_EmptyData(TQ3PolygonData *polygonData)
  2201. ;
  2202.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2203.         IMPORT_CFM_FUNCTION Q3Polygon_EmptyData
  2204.     ENDIF
  2205.  
  2206. ;
  2207. ; extern TQ3Status Q3Polygon_GetVertexPosition(TQ3GeometryObject polygon, unsigned long index, TQ3Point3D *point)
  2208. ;
  2209.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2210.         IMPORT_CFM_FUNCTION Q3Polygon_GetVertexPosition
  2211.     ENDIF
  2212.  
  2213. ;
  2214. ; extern TQ3Status Q3Polygon_SetVertexPosition(TQ3GeometryObject polygon, unsigned long index, const TQ3Point3D *point)
  2215. ;
  2216.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2217.         IMPORT_CFM_FUNCTION Q3Polygon_SetVertexPosition
  2218.     ENDIF
  2219.  
  2220. ;
  2221. ; extern TQ3Status Q3Polygon_GetVertexAttributeSet(TQ3GeometryObject polygon, unsigned long index, TQ3AttributeSet *attributeSet)
  2222. ;
  2223.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2224.         IMPORT_CFM_FUNCTION Q3Polygon_GetVertexAttributeSet
  2225.     ENDIF
  2226.  
  2227. ;
  2228. ; extern TQ3Status Q3Polygon_SetVertexAttributeSet(TQ3GeometryObject polygon, unsigned long index, TQ3AttributeSet attributeSet)
  2229. ;
  2230.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2231.         IMPORT_CFM_FUNCTION Q3Polygon_SetVertexAttributeSet
  2232.     ENDIF
  2233.  
  2234.  
  2235.  
  2236.  
  2237. ; ******************************************************************************
  2238. ; **                                                                             **
  2239. ; **                        Polyhedron Data Structure Definitions                 **
  2240. ; **                                                                             **
  2241. ; ****************************************************************************
  2242.  
  2243.  
  2244. ; typedef long                            TQ3PolyhedronEdgeMasks
  2245. kQ3PolyhedronEdgeNone            EQU        0
  2246. kQ3PolyhedronEdge01                EQU        $01
  2247. kQ3PolyhedronEdge12                EQU        $02
  2248. kQ3PolyhedronEdge20                EQU        $04
  2249. kQ3PolyhedronEdgeAll            EQU        $07
  2250. ; typedef unsigned long                 TQ3PolyhedronEdge
  2251.  
  2252. TQ3PolyhedronEdgeData    RECORD 0
  2253. vertexIndices             ds.l    2                ; offset: $0 (0)
  2254. triangleIndices             ds.l    2                ; offset: $8 (8)
  2255. edgeAttributeSet         ds.l    1                ; offset: $10 (16)
  2256. sizeof                     EQU *                    ; size:   $14 (20)
  2257.                         ENDR
  2258. TQ3PolyhedronTriangleData RECORD 0
  2259. vertexIndices             ds.l    3                ; offset: $0 (0)
  2260. edgeFlag                 ds.l    1                ; offset: $C (12)
  2261. triangleAttributeSet     ds.l    1                ; offset: $10 (16)
  2262. sizeof                     EQU *                    ; size:   $14 (20)
  2263.                         ENDR
  2264. TQ3PolyhedronData        RECORD 0
  2265. numVertices                 ds.l    1                ; offset: $0 (0)
  2266. vertices                 ds.l    1                ; offset: $4 (4)
  2267. numEdges                 ds.l    1                ; offset: $8 (8)
  2268. edges                     ds.l    1                ; offset: $C (12)
  2269. numTriangles             ds.l    1                ; offset: $10 (16)
  2270. triangles                 ds.l    1                ; offset: $14 (20)
  2271. polyhedronAttributeSet     ds.l    1                ; offset: $18 (24)
  2272. sizeof                     EQU *                    ; size:   $1C (28)
  2273.                         ENDR
  2274. ; ******************************************************************************
  2275. ; **                                                                             **
  2276. ; **                                Polyhedron Routines                             **
  2277. ; **                                                                             **
  2278. ; ****************************************************************************
  2279.  
  2280. ;
  2281. ; extern TQ3GeometryObject Q3Polyhedron_New(const TQ3PolyhedronData *polyhedronData)
  2282. ;
  2283.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2284.         IMPORT_CFM_FUNCTION Q3Polyhedron_New
  2285.     ENDIF
  2286.  
  2287. ;
  2288. ; extern TQ3Status Q3Polyhedron_Submit(const TQ3PolyhedronData *polyhedronData, TQ3ViewObject view)
  2289. ;
  2290.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2291.         IMPORT_CFM_FUNCTION Q3Polyhedron_Submit
  2292.     ENDIF
  2293.  
  2294. ;
  2295. ; extern TQ3Status Q3Polyhedron_SetData(TQ3GeometryObject polyhedron, const TQ3PolyhedronData *polyhedronData)
  2296. ;
  2297.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2298.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetData
  2299.     ENDIF
  2300.  
  2301. ;
  2302. ; extern TQ3Status Q3Polyhedron_GetData(TQ3GeometryObject polyhedron, TQ3PolyhedronData *polyhedronData)
  2303. ;
  2304.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2305.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetData
  2306.     ENDIF
  2307.  
  2308. ;
  2309. ; extern TQ3Status Q3Polyhedron_EmptyData(TQ3PolyhedronData *polyhedronData)
  2310. ;
  2311.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2312.         IMPORT_CFM_FUNCTION Q3Polyhedron_EmptyData
  2313.     ENDIF
  2314.  
  2315. ;
  2316. ; extern TQ3Status Q3Polyhedron_SetVertexPosition(TQ3GeometryObject polyhedron, unsigned long index, const TQ3Point3D *point)
  2317. ;
  2318.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2319.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetVertexPosition
  2320.     ENDIF
  2321.  
  2322. ;
  2323. ; extern TQ3Status Q3Polyhedron_GetVertexPosition(TQ3GeometryObject polyhedron, unsigned long index, TQ3Point3D *point)
  2324. ;
  2325.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2326.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetVertexPosition
  2327.     ENDIF
  2328.  
  2329. ;
  2330. ; extern TQ3Status Q3Polyhedron_SetVertexAttributeSet(TQ3GeometryObject polyhedron, unsigned long index, TQ3AttributeSet attributeSet)
  2331. ;
  2332.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2333.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetVertexAttributeSet
  2334.     ENDIF
  2335.  
  2336. ;
  2337. ; extern TQ3Status Q3Polyhedron_GetVertexAttributeSet(TQ3GeometryObject polyhedron, unsigned long index, TQ3AttributeSet *attributeSet)
  2338. ;
  2339.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2340.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetVertexAttributeSet
  2341.     ENDIF
  2342.  
  2343. ;
  2344. ; extern TQ3Status Q3Polyhedron_GetTriangleData(TQ3GeometryObject polyhedron, unsigned long triangleIndex, TQ3PolyhedronTriangleData *triangleData)
  2345. ;
  2346.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2347.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetTriangleData
  2348.     ENDIF
  2349.  
  2350. ;
  2351. ; extern TQ3Status Q3Polyhedron_SetTriangleData(TQ3GeometryObject polyhedron, unsigned long triangleIndex, const TQ3PolyhedronTriangleData *triangleData)
  2352. ;
  2353.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2354.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetTriangleData
  2355.     ENDIF
  2356.  
  2357. ;
  2358. ; extern TQ3Status Q3Polyhedron_GetEdgeData(TQ3GeometryObject polyhedron, unsigned long edgeIndex, TQ3PolyhedronEdgeData *edgeData)
  2359. ;
  2360.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2361.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetEdgeData
  2362.     ENDIF
  2363.  
  2364. ;
  2365. ; extern TQ3Status Q3Polyhedron_SetEdgeData(TQ3GeometryObject polyhedron, unsigned long edgeIndex, const TQ3PolyhedronEdgeData *edgeData)
  2366. ;
  2367.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2368.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetEdgeData
  2369.     ENDIF
  2370.  
  2371.  
  2372.  
  2373.  
  2374. ; ******************************************************************************
  2375. ; **                                                                             **
  2376. ; **                        PolyLine Data Structure Definitions                     **
  2377. ; **                                                                             **
  2378. ; ****************************************************************************
  2379.  
  2380. TQ3PolyLineData            RECORD 0
  2381. numVertices                 ds.l    1                ; offset: $0 (0)
  2382. vertices                 ds.l    1                ; offset: $4 (4)
  2383. segmentAttributeSet         ds.l    1                ; offset: $8 (8)
  2384. polyLineAttributeSet     ds.l    1                ; offset: $C (12)
  2385. sizeof                     EQU *                    ; size:   $10 (16)
  2386.                         ENDR
  2387. ; ******************************************************************************
  2388. ; **                                                                             **
  2389. ; **                            PolyLine Routines                                 **
  2390. ; **                                                                             **
  2391. ; ****************************************************************************
  2392.  
  2393. ;
  2394. ; extern TQ3GeometryObject Q3PolyLine_New(const TQ3PolyLineData *polylineData)
  2395. ;
  2396.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2397.         IMPORT_CFM_FUNCTION Q3PolyLine_New
  2398.     ENDIF
  2399.  
  2400. ;
  2401. ; extern TQ3Status Q3PolyLine_Submit(const TQ3PolyLineData *polyLineData, TQ3ViewObject view)
  2402. ;
  2403.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2404.         IMPORT_CFM_FUNCTION Q3PolyLine_Submit
  2405.     ENDIF
  2406.  
  2407. ;
  2408. ; extern TQ3Status Q3PolyLine_SetData(TQ3GeometryObject polyLine, const TQ3PolyLineData *polyLineData)
  2409. ;
  2410.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2411.         IMPORT_CFM_FUNCTION Q3PolyLine_SetData
  2412.     ENDIF
  2413.  
  2414. ;
  2415. ; extern TQ3Status Q3PolyLine_GetData(TQ3GeometryObject polyLine, TQ3PolyLineData *polyLineData)
  2416. ;
  2417.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2418.         IMPORT_CFM_FUNCTION Q3PolyLine_GetData
  2419.     ENDIF
  2420.  
  2421. ;
  2422. ; extern TQ3Status Q3PolyLine_EmptyData(TQ3PolyLineData *polyLineData)
  2423. ;
  2424.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2425.         IMPORT_CFM_FUNCTION Q3PolyLine_EmptyData
  2426.     ENDIF
  2427.  
  2428. ;
  2429. ; extern TQ3Status Q3PolyLine_GetVertexPosition(TQ3GeometryObject polyLine, unsigned long index, TQ3Point3D *position)
  2430. ;
  2431.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2432.         IMPORT_CFM_FUNCTION Q3PolyLine_GetVertexPosition
  2433.     ENDIF
  2434.  
  2435. ;
  2436. ; extern TQ3Status Q3PolyLine_SetVertexPosition(TQ3GeometryObject polyLine, unsigned long index, const TQ3Point3D *position)
  2437. ;
  2438.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2439.         IMPORT_CFM_FUNCTION Q3PolyLine_SetVertexPosition
  2440.     ENDIF
  2441.  
  2442. ;
  2443. ; extern TQ3Status Q3PolyLine_GetVertexAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet *attributeSet)
  2444. ;
  2445.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2446.         IMPORT_CFM_FUNCTION Q3PolyLine_GetVertexAttributeSet
  2447.     ENDIF
  2448.  
  2449. ;
  2450. ; extern TQ3Status Q3PolyLine_SetVertexAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet attributeSet)
  2451. ;
  2452.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2453.         IMPORT_CFM_FUNCTION Q3PolyLine_SetVertexAttributeSet
  2454.     ENDIF
  2455.  
  2456. ;
  2457. ; extern TQ3Status Q3PolyLine_GetSegmentAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet *attributeSet)
  2458. ;
  2459.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2460.         IMPORT_CFM_FUNCTION Q3PolyLine_GetSegmentAttributeSet
  2461.     ENDIF
  2462.  
  2463. ;
  2464. ; extern TQ3Status Q3PolyLine_SetSegmentAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet attributeSet)
  2465. ;
  2466.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2467.         IMPORT_CFM_FUNCTION Q3PolyLine_SetSegmentAttributeSet
  2468.     ENDIF
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474. ; ******************************************************************************
  2475. ; **                                                                             **
  2476. ; **                        Torus Data Structure Definitions                     **
  2477. ; **                                                                             **
  2478. ; ****************************************************************************
  2479.  
  2480. TQ3TorusData            RECORD 0
  2481. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  2482. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  2483. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  2484. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  2485. ratio                     ds        Float32            ; offset: $30 (48)
  2486. uMin                     ds        Float32            ; offset: $34 (52)
  2487. uMax                     ds        Float32            ; offset: $38 (56)
  2488. vMin                     ds        Float32            ; offset: $3C (60)
  2489. vMax                     ds        Float32            ; offset: $40 (64)
  2490. caps                     ds.l    1                ; offset: $44 (68)
  2491. interiorAttributeSet     ds.l    1                ; offset: $48 (72)
  2492. torusAttributeSet         ds.l    1                ; offset: $4C (76)
  2493. sizeof                     EQU *                    ; size:   $50 (80)
  2494.                         ENDR
  2495. ; ******************************************************************************
  2496. ; **                                                                             **
  2497. ; **                                Torus Routines                                 **
  2498. ; **                                                                             **
  2499. ; ****************************************************************************
  2500.  
  2501. ;
  2502. ; extern TQ3GeometryObject Q3Torus_New(const TQ3TorusData *torusData)
  2503. ;
  2504.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2505.         IMPORT_CFM_FUNCTION Q3Torus_New
  2506.     ENDIF
  2507.  
  2508. ;
  2509. ; extern TQ3Status Q3Torus_Submit(const TQ3TorusData *torusData, TQ3ViewObject view)
  2510. ;
  2511.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2512.         IMPORT_CFM_FUNCTION Q3Torus_Submit
  2513.     ENDIF
  2514.  
  2515. ;
  2516. ; extern TQ3Status Q3Torus_SetData(TQ3GeometryObject torus, const TQ3TorusData *torusData)
  2517. ;
  2518.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2519.         IMPORT_CFM_FUNCTION Q3Torus_SetData
  2520.     ENDIF
  2521.  
  2522. ;
  2523. ; extern TQ3Status Q3Torus_GetData(TQ3GeometryObject torus, TQ3TorusData *torusData)
  2524. ;
  2525.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2526.         IMPORT_CFM_FUNCTION Q3Torus_GetData
  2527.     ENDIF
  2528.  
  2529. ;
  2530. ; extern TQ3Status Q3Torus_SetOrigin(TQ3GeometryObject torus, const TQ3Point3D *origin)
  2531. ;
  2532.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2533.         IMPORT_CFM_FUNCTION Q3Torus_SetOrigin
  2534.     ENDIF
  2535.  
  2536. ;
  2537. ; extern TQ3Status Q3Torus_SetOrientation(TQ3GeometryObject torus, const TQ3Vector3D *orientation)
  2538. ;
  2539.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2540.         IMPORT_CFM_FUNCTION Q3Torus_SetOrientation
  2541.     ENDIF
  2542.  
  2543. ;
  2544. ; extern TQ3Status Q3Torus_SetMajorRadius(TQ3GeometryObject torus, const TQ3Vector3D *majorRadius)
  2545. ;
  2546.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2547.         IMPORT_CFM_FUNCTION Q3Torus_SetMajorRadius
  2548.     ENDIF
  2549.  
  2550. ;
  2551. ; extern TQ3Status Q3Torus_SetMinorRadius(TQ3GeometryObject torus, const TQ3Vector3D *minorRadius)
  2552. ;
  2553.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2554.         IMPORT_CFM_FUNCTION Q3Torus_SetMinorRadius
  2555.     ENDIF
  2556.  
  2557. ;
  2558. ; extern TQ3Status Q3Torus_SetRatio(TQ3GeometryObject torus, float ratio)
  2559. ;
  2560.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2561.         IMPORT_CFM_FUNCTION Q3Torus_SetRatio
  2562.     ENDIF
  2563.  
  2564. ;
  2565. ; extern TQ3Status Q3Torus_GetOrigin(TQ3GeometryObject torus, TQ3Point3D *origin)
  2566. ;
  2567.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2568.         IMPORT_CFM_FUNCTION Q3Torus_GetOrigin
  2569.     ENDIF
  2570.  
  2571. ;
  2572. ; extern TQ3Status Q3Torus_GetOrientation(TQ3GeometryObject torus, TQ3Vector3D *orientation)
  2573. ;
  2574.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2575.         IMPORT_CFM_FUNCTION Q3Torus_GetOrientation
  2576.     ENDIF
  2577.  
  2578. ;
  2579. ; extern TQ3Status Q3Torus_GetMajorRadius(TQ3GeometryObject torus, TQ3Vector3D *majorRadius)
  2580. ;
  2581.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2582.         IMPORT_CFM_FUNCTION Q3Torus_GetMajorRadius
  2583.     ENDIF
  2584.  
  2585. ;
  2586. ; extern TQ3Status Q3Torus_GetMinorRadius(TQ3GeometryObject torus, TQ3Vector3D *minorRadius)
  2587. ;
  2588.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2589.         IMPORT_CFM_FUNCTION Q3Torus_GetMinorRadius
  2590.     ENDIF
  2591.  
  2592. ;
  2593. ; extern TQ3Status Q3Torus_GetRatio(TQ3GeometryObject torus, float *ratio)
  2594. ;
  2595.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2596.         IMPORT_CFM_FUNCTION Q3Torus_GetRatio
  2597.     ENDIF
  2598.  
  2599. ;
  2600. ; extern TQ3Status Q3Torus_EmptyData(TQ3TorusData *torusData)
  2601. ;
  2602.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2603.         IMPORT_CFM_FUNCTION Q3Torus_EmptyData
  2604.     ENDIF
  2605.  
  2606.  
  2607.  
  2608.  
  2609. ; ******************************************************************************
  2610. ; **                                                                             **
  2611. ; **                        Triangle Data Structure Definitions                     **
  2612. ; **                                                                             **
  2613. ; ****************************************************************************
  2614.  
  2615. TQ3TriangleData            RECORD 0
  2616. vertices                 ds.b    3 * TQ3Vertex3D.sizeof ; offset: $0 (0)
  2617. triangleAttributeSet     ds.l    1                ; offset: $30 (48)
  2618. sizeof                     EQU *                    ; size:   $34 (52)
  2619.                         ENDR
  2620. ; ******************************************************************************
  2621. ; **                                                                             **
  2622. ; **                            Triangle Routines                                 **
  2623. ; **                                                                             **
  2624. ; ****************************************************************************
  2625.  
  2626. ;
  2627. ; extern TQ3GeometryObject Q3Triangle_New(const TQ3TriangleData *triangleData)
  2628. ;
  2629.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2630.         IMPORT_CFM_FUNCTION Q3Triangle_New
  2631.     ENDIF
  2632.  
  2633. ;
  2634. ; extern TQ3Status Q3Triangle_Submit(const TQ3TriangleData *triangleData, TQ3ViewObject view)
  2635. ;
  2636.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2637.         IMPORT_CFM_FUNCTION Q3Triangle_Submit
  2638.     ENDIF
  2639.  
  2640. ;
  2641. ; extern TQ3Status Q3Triangle_SetData(TQ3GeometryObject triangle, const TQ3TriangleData *triangleData)
  2642. ;
  2643.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2644.         IMPORT_CFM_FUNCTION Q3Triangle_SetData
  2645.     ENDIF
  2646.  
  2647. ;
  2648. ; extern TQ3Status Q3Triangle_GetData(TQ3GeometryObject triangle, TQ3TriangleData *triangleData)
  2649. ;
  2650.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2651.         IMPORT_CFM_FUNCTION Q3Triangle_GetData
  2652.     ENDIF
  2653.  
  2654. ;
  2655. ; extern TQ3Status Q3Triangle_EmptyData(TQ3TriangleData *triangleData)
  2656. ;
  2657.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2658.         IMPORT_CFM_FUNCTION Q3Triangle_EmptyData
  2659.     ENDIF
  2660.  
  2661. ;
  2662. ; extern TQ3Status Q3Triangle_GetVertexPosition(TQ3GeometryObject triangle, unsigned long index, TQ3Point3D *point)
  2663. ;
  2664.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2665.         IMPORT_CFM_FUNCTION Q3Triangle_GetVertexPosition
  2666.     ENDIF
  2667.  
  2668. ;
  2669. ; extern TQ3Status Q3Triangle_SetVertexPosition(TQ3GeometryObject triangle, unsigned long index, const TQ3Point3D *point)
  2670. ;
  2671.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2672.         IMPORT_CFM_FUNCTION Q3Triangle_SetVertexPosition
  2673.     ENDIF
  2674.  
  2675. ;
  2676. ; extern TQ3Status Q3Triangle_GetVertexAttributeSet(TQ3GeometryObject triangle, unsigned long index, TQ3AttributeSet *attributeSet)
  2677. ;
  2678.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2679.         IMPORT_CFM_FUNCTION Q3Triangle_GetVertexAttributeSet
  2680.     ENDIF
  2681.  
  2682. ;
  2683. ; extern TQ3Status Q3Triangle_SetVertexAttributeSet(TQ3GeometryObject triangle, unsigned long index, TQ3AttributeSet attributeSet)
  2684. ;
  2685.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2686.         IMPORT_CFM_FUNCTION Q3Triangle_SetVertexAttributeSet
  2687.     ENDIF
  2688.  
  2689.  
  2690.  
  2691.  
  2692. ; ******************************************************************************
  2693. ; **                                                                             **
  2694. ; **                        TriGrid Data Structure Definitions                     **
  2695. ; **                                                                             **
  2696. ; ****************************************************************************
  2697.  
  2698. TQ3TriGridData            RECORD 0
  2699. numRows                     ds.l    1                ; offset: $0 (0)
  2700. numColumns                 ds.l    1                ; offset: $4 (4)
  2701. vertices                 ds.l    1                ; offset: $8 (8)
  2702. facetAttributeSet         ds.l    1                ; offset: $C (12)
  2703. triGridAttributeSet         ds.l    1                ; offset: $10 (16)
  2704. sizeof                     EQU *                    ; size:   $14 (20)
  2705.                         ENDR
  2706. ; ******************************************************************************
  2707. ; **                                                                             **
  2708. ; **                                TriGrid Routines                             **
  2709. ; **                                                                             **
  2710. ; ****************************************************************************
  2711.  
  2712. ;
  2713. ; extern TQ3GeometryObject Q3TriGrid_New(const TQ3TriGridData *triGridData)
  2714. ;
  2715.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2716.         IMPORT_CFM_FUNCTION Q3TriGrid_New
  2717.     ENDIF
  2718.  
  2719. ;
  2720. ; extern TQ3Status Q3TriGrid_Submit(const TQ3TriGridData *triGridData, TQ3ViewObject view)
  2721. ;
  2722.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2723.         IMPORT_CFM_FUNCTION Q3TriGrid_Submit
  2724.     ENDIF
  2725.  
  2726. ;
  2727. ; extern TQ3Status Q3TriGrid_SetData(TQ3GeometryObject triGrid, const TQ3TriGridData *triGridData)
  2728. ;
  2729.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2730.         IMPORT_CFM_FUNCTION Q3TriGrid_SetData
  2731.     ENDIF
  2732.  
  2733. ;
  2734. ; extern TQ3Status Q3TriGrid_GetData(TQ3GeometryObject triGrid, TQ3TriGridData *triGridData)
  2735. ;
  2736.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2737.         IMPORT_CFM_FUNCTION Q3TriGrid_GetData
  2738.     ENDIF
  2739.  
  2740. ;
  2741. ; extern TQ3Status Q3TriGrid_EmptyData(TQ3TriGridData *triGridData)
  2742. ;
  2743.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2744.         IMPORT_CFM_FUNCTION Q3TriGrid_EmptyData
  2745.     ENDIF
  2746.  
  2747. ;
  2748. ; extern TQ3Status Q3TriGrid_GetVertexPosition(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3Point3D *position)
  2749. ;
  2750.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2751.         IMPORT_CFM_FUNCTION Q3TriGrid_GetVertexPosition
  2752.     ENDIF
  2753.  
  2754. ;
  2755. ; extern TQ3Status Q3TriGrid_SetVertexPosition(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, const TQ3Point3D *position)
  2756. ;
  2757.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2758.         IMPORT_CFM_FUNCTION Q3TriGrid_SetVertexPosition
  2759.     ENDIF
  2760.  
  2761. ;
  2762. ; extern TQ3Status Q3TriGrid_GetVertexAttributeSet(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3AttributeSet *attributeSet)
  2763. ;
  2764.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2765.         IMPORT_CFM_FUNCTION Q3TriGrid_GetVertexAttributeSet
  2766.     ENDIF
  2767.  
  2768. ;
  2769. ; extern TQ3Status Q3TriGrid_SetVertexAttributeSet(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3AttributeSet attributeSet)
  2770. ;
  2771.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2772.         IMPORT_CFM_FUNCTION Q3TriGrid_SetVertexAttributeSet
  2773.     ENDIF
  2774.  
  2775. ;
  2776. ; extern TQ3Status Q3TriGrid_GetFacetAttributeSet(TQ3GeometryObject triGrid, unsigned long faceIndex, TQ3AttributeSet *facetAttributeSet)
  2777. ;
  2778.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2779.         IMPORT_CFM_FUNCTION Q3TriGrid_GetFacetAttributeSet
  2780.     ENDIF
  2781.  
  2782. ;
  2783. ; extern TQ3Status Q3TriGrid_SetFacetAttributeSet(TQ3GeometryObject triGrid, unsigned long faceIndex, TQ3AttributeSet facetAttributeSet)
  2784. ;
  2785.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2786.         IMPORT_CFM_FUNCTION Q3TriGrid_SetFacetAttributeSet
  2787.     ENDIF
  2788.  
  2789.  
  2790.  
  2791.  
  2792. ; ******************************************************************************
  2793. ; **                                                                             **
  2794. ; **                        TriMesh Data Structure Definitions                     **
  2795. ; **                                                                             **
  2796. ; ****************************************************************************
  2797.  
  2798. TQ3TriMeshTriangleData    RECORD 0
  2799. pointIndices             ds.l    3                ; offset: $0 (0)
  2800. sizeof                     EQU *                    ; size:   $C (12)
  2801.                         ENDR
  2802. TQ3TriMeshEdgeData        RECORD 0
  2803. pointIndices             ds.l    2                ; offset: $0 (0)
  2804. triangleIndices             ds.l    2                ; offset: $8 (8)
  2805. sizeof                     EQU *                    ; size:   $10 (16)
  2806.                         ENDR
  2807. TQ3TriMeshAttributeData    RECORD 0
  2808. attributeType             ds.l    1                ; offset: $0 (0)        ;  The type of attribute          
  2809. data                     ds.l    1                ; offset: $4 (4)        ;  Pointer to the contiguous     
  2810. ;  attribute data.                 
  2811. attributeUseArray         ds.l    1                ; offset: $8 (8)        ;  This is only used with custom 
  2812. ;  attributes                      
  2813. sizeof                     EQU *                    ; size:   $C (12)
  2814.                         ENDR
  2815. TQ3TriMeshData            RECORD 0
  2816. triMeshAttributeSet         ds.l    1                ; offset: $0 (0)
  2817. numTriangles             ds.l    1                ; offset: $4 (4)
  2818. triangles                 ds.l    1                ; offset: $8 (8)
  2819. numTriangleAttributeTypes  ds.l    1                ; offset: $C (12)
  2820. triangleAttributeTypes     ds.l    1                ; offset: $10 (16)
  2821. numEdges                 ds.l    1                ; offset: $14 (20)
  2822. edges                     ds.l    1                ; offset: $18 (24)
  2823. numEdgeAttributeTypes     ds.l    1                ; offset: $1C (28)
  2824. edgeAttributeTypes         ds.l    1                ; offset: $20 (32)
  2825. numPoints                 ds.l    1                ; offset: $24 (36)
  2826. points                     ds.l    1                ; offset: $28 (40)
  2827. numVertexAttributeTypes     ds.l    1                ; offset: $2C (44)
  2828. vertexAttributeTypes     ds.l    1                ; offset: $30 (48)
  2829. bBox                     ds        TQ3BoundingBox ; offset: $34 (52)
  2830. sizeof                     EQU *                    ; size:   $50 (80)
  2831.                         ENDR
  2832. ; ******************************************************************************
  2833. ; **                                                                             **
  2834. ; **                            TriMesh Routines                                 **
  2835. ; **                                                                             **
  2836. ; ****************************************************************************
  2837.  
  2838. ;
  2839. ; extern TQ3GeometryObject Q3TriMesh_New(const TQ3TriMeshData *triMeshData)
  2840. ;
  2841.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2842.         IMPORT_CFM_FUNCTION Q3TriMesh_New
  2843.     ENDIF
  2844.  
  2845. ;
  2846. ; extern TQ3Status Q3TriMesh_Submit(const TQ3TriMeshData *triMeshData, TQ3ViewObject view)
  2847. ;
  2848.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2849.         IMPORT_CFM_FUNCTION Q3TriMesh_Submit
  2850.     ENDIF
  2851.  
  2852. ;
  2853. ; extern TQ3Status Q3TriMesh_SetData(TQ3GeometryObject triMesh, const TQ3TriMeshData *triMeshData)
  2854. ;
  2855.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2856.         IMPORT_CFM_FUNCTION Q3TriMesh_SetData
  2857.     ENDIF
  2858.  
  2859. ;
  2860. ; extern TQ3Status Q3TriMesh_GetData(TQ3GeometryObject triMesh, TQ3TriMeshData *triMeshData)
  2861. ;
  2862.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2863.         IMPORT_CFM_FUNCTION Q3TriMesh_GetData
  2864.     ENDIF
  2865.  
  2866. ;
  2867. ; extern TQ3Status Q3TriMesh_EmptyData(TQ3TriMeshData *triMeshData)
  2868. ;
  2869.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2870.         IMPORT_CFM_FUNCTION Q3TriMesh_EmptyData
  2871.     ENDIF
  2872.  
  2873.  
  2874.  
  2875.  
  2876.     ENDIF ; __QD3DGEOMETRY__ 
  2877.  
  2878.